我从设置模块收到以下数据:
"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)
但我只想要第一个.
当我跑size
,并length
在一根绳子上,它们返回的值相同.
"akash".size # => 5
"akash".length # => 5
Run Code Online (Sandbox Code Playgroud)
这两种方法有什么区别?
嗨我是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?
我想知道下面命令在bash中做了什么.
我可以使用set的其他选项是什么,它们是什么意思.
我打算用ansible,jenkins和docker一起构建测试环境.计划是这样的.
为您在环境中使用的每个工具创建ansible playbooks并将它们存储在git上.使用jenkins创建作业以在dev服务器上创建docker容器,并使用ansible playbooks来配置docker容器.将创建Jenkins作业,以便用户可以选择要与docker容器一起使用的playbooks,并相应地构建容器.
整个概念可以概括如下图所示.
我看到的好处是
自动复制精确的生产环境.
根据要求扩展测试环境.
为单个服务器上的应用程序测试提供不同的平台.
更快的集成测试.
推广敏捷方法论.
自由开发和定制测试环境.
开发人员和测试人员可以自己创建环境,即使他们对操作系统,配置一无所知.
在干净的环境中测试应用程序的部署,这是一个全新的版本.
有没有人实现过这种类型的环境架构,我想讨论同样可行性的实际好处.
我想知道存档未使用的作业的最佳方法是什么.是否有任何插件可以让我们存档选定的Jenkins作业,如果我们感觉到他们的要求,可以在以后恢复它们.现在我正在复制作业文件夹并在删除作业日志后对其进行归档.我要将此目录恢复到Jenkins的作业目录.
我试图理解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: value
对sku
?我很困惑。通过列表,地图和地图内部嵌套列表的示例帮助我了解非常基本的语法,反之亦然。
是否有用于创建拉取请求的 Jenkins 插件?
假设我在某个功能分支上运行 Jenkins 作业。如果这项工作成功,那么我希望 Jenkins 自动从这个功能分支创建一个拉取请求。
有一种命令行方式来创建拉取请求:
git request-pull [-p] <start> <url> [<end>]
Run Code Online (Sandbox Code Playgroud)
但我一直无法找到让 Jenkins 自动执行任务的方法。
有没有人使用过 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)
仍然什么都不做。我也没有在日志中看到任何与插件相关的东西。
我如何访问在 ip 172.20.128.2 的容器内运行的网站。我不想进行端口转发和使用主机 ip。我知道我可以在主机端口上转发 docker 端口并且可以使用主机 IP 进行访问,但我不想这样做。我正在使用 docker 1.10