Ansible shell和with_items

Ric*_*o79 2 shell ansible

我想知道是否

  - 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

里卡多

Kon*_*rov 5

Ansible将每个循环迭代作为单独的运行运行,因此您最终会得到不同的ssh会话.

ANSIBLE_SQUASH_ACTIONS变量中描述了一些例外:

"apk, apt, dnf, package, pacman, pkgng, yum, zypper"
Run Code Online (Sandbox Code Playgroud)

这些模块非常智能,可以将所有项目压缩成一个任务调用.