gdsrawe 发表于 2014-12-12 08:37:11

ansible when在include中使用

简单测试ansible的when在include中使用1、需求
用到一个配置需求,对hosts中不同类型的主机进行各自的操作。
(1)实验环境:

客户端IP
应用类型
Hosts中名称
192.168.24.10
数据库
db

192.168.24.11
应用程序
app

(2)操作结果:
192.168.24.10 服务器/tmp下生成db.txt,192.168.24.11服务器/tmp下生成app.txt文件
2、测试结构
# tree test/
test/
├── hosts
├── install_client.yml
└── roles
    └──install_client
       ├── files
       ├── tasks
       │   ├── app.yml
       │   ├── db.yml
       │   └── main.yml
       ├── templates
(1)hosts

192.168.24.10

192.168.24.11
(2)install_client.yml
---
###
## laowafang2014-12-1
####
- hosts: '{{ hosts }}'
user: ansible
sudo: yes
sudo_user:root
roles:
    -install_client
(3)roles/install_client/tasks/ main.yml   # 本次测试的关键地方
---
### agentd install
- include: db.yml
when:"hosts == 'db'"
- include: app.yml
when:"hosts == 'app'"
(4)roles/install_client/tasks/db.yml
---
- name: Touchdb file
    shell:touch /tmp/db.txt
(5)roles/install_client/tasks/app.yml
---
- name: Touchdb file
    shell: touch /tmp/db.txt
3、测试playbook
# cd/etc/ansible/test
$ ansible-playbook -i ./hosts install_client.yml --extra-vars "hosts=db"
PLAY *********************************************************************
GATHERING FACTS***************************************************************
ok:
TASK: ****************************************
changed:
TASK: ********************************************
skipping:
PLAY RECAP ********************************************************************
192.168.24.10            : ok=2    changed=1   unreachable=0    failed=0   
$ ansible-playbook -i ./hosts install_client.yml --extra-vars "hosts=app"
PLAY ********************************************************************
GATHERING FACTS***************************************************************
ok:
TASK: ****************************************
skipping:
TASK: ********************************************
changed:
PLAY RECAP********************************************************************
192.168.24.11            : ok=2    changed=1   unreachable=0    failed=0
### 查看对应服务器IP地址分别生成各自文件。

页: [1]
查看完整版本: ansible when在include中使用