小编Vet*_*emi的帖子

Ansible:使用变量来定义playbook主机

我安装了以下版本:ansible 2.3.0(devel 2131eaba0c)

我想将主变量指定为外部变量,然后在类似于此的playbook中使用它:

hosts: "{{integration}}"
Run Code Online (Sandbox Code Playgroud)

在我的group_vars/all文件中,我有以下定义的变量:

integration: "int60"
Run Code Online (Sandbox Code Playgroud)

主机文件看起来是这样的:

[int60] 
hostA

[int61]
hostB
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不起作用.我还尝试以下列方式定义主机var:

[integration]
127.0.0.1 ansible_host="{{ integration_env }}"
Run Code Online (Sandbox Code Playgroud)

并在我的group_vars/all文件中指定integration_env.在这种情况下,它似乎在本地运行任务而不是在所需的环境中运行.

可以这样做吗?我会接受全新的做法.主要目标是在var文件中定义主变量.

ansible ansible-playbook ansible-2.x

7
推荐指数
1
解决办法
7582
查看次数

如何在Ansible(脚本模块)中转义反斜杠和双引号

我是Ansible(2.x)的新手,我在使用脚本模块和使用双引号和反斜杠传递参数时遇到了麻烦.

假设我们有一个{{foo}}包含字符串"foo" 的set变量,我有一个这样的任务:

set_fact:
   arg: \(-name "{{foo}}" \)
name: call shell module
script: path/somescript.sh "{{arg}}"
Run Code Online (Sandbox Code Playgroud)

我的脚本需要以下参数结构才能工作:

\(-name "foo" \)
Run Code Online (Sandbox Code Playgroud)

我试过几件事,比如:

arg: \(-name \""{{foo}}"\" \)           result: \\(-name \"foo\" \\)

arg: '\(-name \""{{foo}}"\" \)'         result: \\(-name \"foo\" \\)

arg: \\(-name \""{{foo}}"\" \\)           result: \\(-name \"foo\" \\)
Run Code Online (Sandbox Code Playgroud)

是否有可能在Ansible中逃避反斜杠和双引号?

ansible

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

标签 统计

ansible ×2

ansible-2.x ×1

ansible-playbook ×1