小编thi*_*ter的帖子

如何从Ansible中的安装模块输出中获取列表的第一个元素?

我从设置模块收到以下数据:

"ansible_nodename": "3d734bc2a391",
"ansible_os_family": "RedHat",
"ansible_pkg_mgr": "yum",
"ansible_processor": [
  "AuthenticAMD",
  "AMD PRO A10-8700B R6, 10 Compute Cores 4C+6G"
],
"ansible_processor_cores": 1,
"ansible_processor_count": 1,
"ansible_processor_threads_per_core": 1,
Run Code Online (Sandbox Code Playgroud)

我想检索第一个值ansible_processor并在Jinja2模板中使用它.

如果我使用{{ ansible_processor }}它,它给了我两个价值观:

"AuthenticAMD",
"AMD PRO A10-8700B R6, 10 Compute Cores 4C+6G"
Run Code Online (Sandbox Code Playgroud)

但我只想要第一个.

jinja2 ansible ansible-template ansible-facts

26
推荐指数
1
解决办法
4万
查看次数

`size`和`length`方法有什么区别

当我跑size,并length在一根绳子上,它们返回的值相同.

"akash".size # => 5
"akash".length # => 5
Run Code Online (Sandbox Code Playgroud)

这两种方法有什么区别?

ruby string

18
推荐指数
2
解决办法
8620
查看次数

在jinja 2中使用regex作为ansible playbooks

嗨我是jinja2的新手,并尝试使用正则表达式,如下所示

{% if ansible_hostname == 'uat' %}
   {% set server = 'thinkingmonster.com' %}

{% else %}
   {% set server = 'define yourself' %}
{% endif %}

{% if {{ server }} match('*thinking*') %}
  {% set ssl_certificate = 'akash' %}

{% elif {{ server }} match( '*sleeping*')%}
   {% set ssl_certificate = 'akashthakur' %}
{% endif %}
Run Code Online (Sandbox Code Playgroud)

根据"服务器"的值,我想评估使用哪些证书.即如果域包含"思考"关键字,则使用这些证书,如果它包含"sleeping"关键字,则使用该证书.

但没有发现任何jinja2过滤器支持这一点.请帮助我.我发现了一些python代码,确定可以工作,但如何在jinja2模板中使用python?

python regex jinja2 ansible ansible-playbook

13
推荐指数
4
解决办法
4万
查看次数

什么设置-e和set -a在bash中做什么.我可以使用set命令的其他选项

我想知道下面命令在bash中做了什么.

  • 设置-e
  • 设置-a

我可以使用set的其他选项是什么,它们是什么意思.

manpage

8
推荐指数
2
解决办法
1万
查看次数

使用Ansible,Jenkins和docker构建快速测试环境

我打算用ansible,jenkins和docker一起构建测试环境.计划是这样的.

为您在环境中使用的每个工具创建ansible playbooks并将它们存储在git上.使用jenkins创建作业以在dev服务器上创建docker容器,并使用ansible playbooks来配置docker容器.将创建Jenkins作业,以便用户可以选择要与docker容器一起使用的playbooks,并相应地构建容器.

整个概念可以概括如下图所示.

DEVOPS

我看到的好处是

自动复制精确的生产环境.
根据要求扩展测试环境.
为单个服务器上的应用程序测试提供不同的平台.
更快的集成测试.
推广敏捷方法论.
自由开发和定制测试环境.
开发人员和测试人员可以自己创建环境,即使他们对操作系统,配置一无所知.
在干净的环境中测试应用程序的部署,这是一个全新的版本.

有没有人实现过这种类型的环境架构,我想讨论同样可行性的实际好处.

jenkins ansible docker

6
推荐指数
1
解决办法
4897
查看次数

归档/恢复所选jenkins作业的最佳方法是什么

我想知道存档未使用的作业的最佳方法是什么.是否有任何插件可以让我们存档选定的Jenkins作业,如果我们感觉到他们的要求,可以在以后恢复它们.现在我正在复制作业文件夹并在删除作业日志后对其进行归档.我要将此目录恢复到Jenkins的作业目录.

jenkins jenkins-plugins

6
推荐指数
1
解决办法
4383
查看次数

了解YAML

我试图理解YAML的非常基本的概念。我没有找到任何相关文件可以消除我的疑虑。例如:

product:
    - sku         : BL394D
      quantity    : 4
      description : Basketball
      price       : 450.00
    - sku         : BL4438H
      quantity    : 1
      description : Super Hoop
      price       : 2392.00
tax  : 251.42
total: 4443.52
Run Code Online (Sandbox Code Playgroud)

product 我猜是一个序列:

- sku         : BL394D
Run Code Online (Sandbox Code Playgroud)

作为数据。我读过在YAML中可以将序列定义为:

name:
 -a
 -b
 -c
Run Code Online (Sandbox Code Playgroud)

我的问题是product这些值依次是什么?它们前面没有连字符,就像序列项一样。

      quantity    : 4
      description : Basketball
      price       : 450.00
Run Code Online (Sandbox Code Playgroud)

它们还属于序列还是嵌套key: valuesku?我很困惑。通过列表,地图和地图内部嵌套列表的示例帮助我了解非常基本的语法,反之亦然。

yaml

5
推荐指数
1
解决办法
408
查看次数

如果在功能分支上运行的 jenkins 作业成功,如何创建拉取请求

是否有用于创建拉取请求的 Jenkins 插件?

假设我在某个功能分支上运行 Jenkins 作业。如果这项工作成功,那么我希望 Jenkins 自动从这个功能分支创建一个拉取请求。

有一种命令行方式来创建拉取请求:

git request-pull [-p] <start> <url> [<end>]
Run Code Online (Sandbox Code Playgroud)

但我一直无法找到让 Jenkins 自动执行任务的方法。

git pull-request jenkins

5
推荐指数
1
解决办法
3174
查看次数

stash Pull Request Builder 插件

有没有人使用过 stash builder 插件。它的文档说它在构建环境中添加了一些环境变量,但是如果我回应它们,它们都是空的

echo "${sourceBranch}"
echo "${targetBranch}"
echo "${sourceRepositoryOwner}"
echo "${sourceRepositoryName}"
echo "${pullRequestId}"
echo "${destinationRepositoryOwner}"
echo "${destinationReposotryName}"
echo "${pullRequestTitle}"
echo "${sourceCommitHash}"
Run Code Online (Sandbox Code Playgroud)

这个插件对我没有任何作用。这是我的配置我选择 git 作为 SCM [poll scm is not selected]

RepositoryUrl:ssh://git@stash-eng.abc.com:7999/mytool/my_tools_demo.git
Refspec:\+refs/pull-requests/*:refs/remotes/origin/pr/*
Branch Specifier:-origin/pr/${pullRequestId}/from
Run Code Online (Sandbox Code Playgroud)

然后我标记复选框“Stash Pull Requests Builder”,下面是差异字段的值

Cron:H/2 * * * *
Stash Host:stash-eng.abc.com
Stash Credentials:..........
Project:mytool
Repository Name:my_tools_demo
Run Code Online (Sandbox Code Playgroud)

仍然什么都不做。我也没有在日志中看到任何与插件相关的东西。

pull-request bitbucket-server

5
推荐指数
1
解决办法
3781
查看次数

如何使用容器的 IP 地址访问在 Docker 容器内运行的网站

我如何访问在 ip 172.20.128.2 的容器内运行的网站。我不想进行端口转发和使用主机 ip。我知道我可以在主机端口上转发 docker 端口并且可以使用主机 IP 进行访问,但我不想这样做。我正在使用 docker 1.10

containers docker

5
推荐指数
1
解决办法
8297
查看次数