我想知道是否
- shell: >
hostname;
whoami;
Run Code Online (Sandbox Code Playgroud)
和
- shell: "{{item}}"
with_items: ['hostname', 'whoami']
Run Code Online (Sandbox Code Playgroud)
相当于?在第二个示例中,Ansible将始终对两个命令(hostname,whoami)使用相同的SSH连接?
在我看来它是假的......
- shell: "{{item}}"
with_items: ['export miavar=PIPPO', 'echo $miavar']
(item=export miavar=PIPPO) => {"changed": true, "cmd": "export miavar=PIPPO", "stdout": ""}
(item=echo $miavar) => {"changed": true, "cmd": "echo $miavar", "stdout": ""}
Run Code Online (Sandbox Code Playgroud)
- 无形2.1.1.0
里卡多
Ansible将每个循环迭代作为单独的运行运行,因此您最终会得到不同的ssh会话.
ANSIBLE_SQUASH_ACTIONS变量中描述了一些例外:
"apk, apt, dnf, package, pacman, pkgng, yum, zypper"
Run Code Online (Sandbox Code Playgroud)
这些模块非常智能,可以将所有项目压缩成一个任务调用.