使用ansible命令传递多个模块参数(参数)的方法

我想通过ansible命令执行类似于Playbook中所写的内容。

我想用Ansible命令做这样的事情。

- hosts: localhost
  tasks:
    - file:
        path: ~/example.txt
        state: touch

总结

以这种方式使用空格分隔的key=value形式即可。

$ ansible -m “模块名称” –args “参数1=值1 参数2=值2”

执行示例

$ ansible localhost -m "file" --args "path=~/example.txt state=touch" 

localhost | SUCCESS => {
    "changed": true,
    "dest": "/Users/yinaura/example.txt",
    "gid": 20,
    "group": "staff",
    "mode": "0644",
    "owner": "yinaura",
    "size": 4,
    "state": "file",
    "uid": 501
}

如果是在本地主机上,可以方便地进行操作而无需指定清单。

到达这里的过程

最新版本的ansible帮助文档只是用非常简洁的语言写成。

Options:
  -a MODULE_ARGS, --args=MODULE_ARGS
                        module arguments

无论是搜索StackOverFlow还是官方文档,都找不到示例。
无论是用冒号、分号还是换行来分隔,都行不通。

经过尝试了很多方法,终于让它动起来了。

追加信息

Ansible 的工作原理被隨意地陳述並附上了例子,這令人驚訝。

ansible all -m ping 
ansible foo.example.com -m yum -a "name=httpd state=installed"
ansible foo.example.com -a "/usr/sbin/reboot"

环境

    ansible 2.6.0

链接

    Gist

招募聊天室成员

如果您有任何问题、困扰或需要咨询的事情,请随时使用LINE公开聊天。

 

推特

 

bannerAds