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:在命令行里面传值

ansible-playbook testyml --extra-vars "hosts=vm-1 user=root"
#还可以用json格式传递参数:
ansible-playbook test.yml --extra-vars "{'hosts':'vm-1', 'user':'root'}"
#还可以将参数放在文件里面:
ansible-playbook test.yml --extra-vars "@vars.json"

yaml文件playbook.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

#修改如下配置然后保存退出
[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

2,执行playbook文件

#文件playbook.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

#修改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

2,执行playbook文件

#playbook.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

#修改后的文件如下:
- 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

转载于:https://blog.51cto.com/qiangsh/2088900

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ansible Playbook是一种用于自动化配置、部署和管理IT基础设施的工具。它使用YAML语法来描述一系列任务和配置,以实现对远程主机的自动化操作。 下面是Ansible Playbook的一些基本语法要点: 1. YAML格式:Playbook使用YAML格式来定义任务和配置。YAML是一种人类可读的数据序列化格式,它使用缩进和冒号来表示层级关系。 2. 主机和组:Playbook可以指定要操作的主机或主机组。可以使用IP地址、主机名或主机组名称来标识主机。 3. 任务:Playbook由一个或多个任务组成。每个任务定义了要在远程主机上执行的操作,如安装软件包、配置文件等。 4. 模块:任务使用模块来执行具体的操作。模块是Ansible提供的可重用代码块,用于执行各种任务,如文件操作、服务管理、包管理等。 5. 变量:Playbook可以使用变量来传递参数和配置信息。变量可以在Playbook中定义,也可以从外部文件加载。 6. 条件和循环:Playbook支持条件语句和循环语句,可以根据条件执行不同的任务或重复执行某个任务。 7. 触发器:Playbook可以根据特定的事件触发执行,如定时任务、文件变化等。 8. 错误处理:Playbook可以定义任务失败时的处理方式,如忽略错误、终止执行等。 9. 角色:Playbook可以使用角色来组织和复用任务和配置。角色是一种可重用的Playbook组件,可以在多个Playbook中引用。 以上是Ansible Playbook的基本语法要点,通过编写Playbook,可以实现对远程主机的自动化配置和管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值