ansible playbook传递参数

1.playbook命令格式

- hosts: web  #web组所有机器
  remote_user: root  #远程用户, 默认是root用户
  tasks:  # 要执行的任务组
  - name: createuser  # 任务名
    user: name=user1 state=present  # 相当于 ansible -m user -a 'name=user1 state=present'
  - name: creategroup  # 任务名
    group: name=group1  # 相当于 ansible -m group -i 'name=group1'

需要注意格式:
每一个"-“和”:"后面都有一个空格

2.playbook传参

传参方式1: -e
yaml文件pbook.yml:

- hosts: web
  remote_user: root
  tasks:
  - name: createuser
    user: name={{ user  }} state=absent

执行命令:

ansible-playbook -e user=user1 pbook.yml  # 将user1传递给文件中的user后执行命令

传参方式2:hosts文件里面主机后面写

1,打开ansible hosts文件:

vim /etc/ansible/hosts

2, 修改如下配置然后保存退出

[web]  #web组
192.168.12.91 user=user1
192.168.12.92 user=user2
192.168.12.93 user=user3
[db]  #db组
192.168.12.93

我的hosts文件图例说明:
在这里插入图片描述
3,执行playbook文件

文件pbook.yml内容:

- hosts: web
  remote_user: root
  tasks:
  - name: createuser
    user: name={{ user  }}  #这里的user对应hosts文件中user变量

执行文件:

ansible-playbook pbook.yml

传参方式3:hosts文件里面写[groupname:vars]
1,打开ansible hosts文件

vim /etc/ansible/hosts

2,修改ansible hosts文件

[web]
192.168.12.91
192.168.12.92
192.168.12.93
[db]
192.168.12.93

[web:vars]  #web组所有主机指定同一个user变量user3
user=user3

我的hosts文件图例:
在这里插入图片描述
3,执行playbook文件
pbook.yml文件内容:

- hosts: web
  remote_user: root
  tasks:
  - name: createuser
    user: name={{ user }}  #这里的user对应hosts文件中user变量

执行:

ansible-playbook pbook.yml

传参方式4:playbook文件中vars来指定
1,打开pbook文件:

vim pbook.yml

添加如下两行:
在这里插入图片描述
添加后文件内容:

- hosts: web
  remote_user: root
  tasks:
  - name: createuser
    user: name={{ user }}
  vars:
  - user: user5

2,执行文件:

ansible-playbook pbook.yml

传参方式5:通过register注册,使用的时候要使用参数的.stdout值

1,打开pbook.yml文件:

vim pbook.yml

2,修改文件图例:
在这里插入图片描述
修改后的文件如下:

- hosts: web
  remote_user: root
  tasks:
  - name: sum
    shell: echo user10
    register: user
  - name: createuser
    user: name={{ user.stdout }}

3,保存退出,执行pbook.yml文件

ansible-playbook pbook.yml
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值