在/etc/ansible/hosts中的末尾写入以下三行:
[webservers]
第一台主机的IP地址 ansible_ssh_user=root
第二台主机的IP地址 ansible_ssh_user=root
第一、条件安装:
编辑一个文件: when.yaml,内容如下:
- hosts: webservers
remote_user: root
tasks:
- name: install httpd
yum: name=httpd state=installed
when: ansible_os_family == "RedHat"
- name: install apache2
apt: name=apache2 state=installed
when: ansible_os_family == "Debian"
执行ansible-playbook when.xml,执行结果如下:
如果测试条件成立,则执行相应的安装工作;如果测试条件不成,则跳过对应的任务。
第二、循环
在受控主机上添加三个组group1, group2, group3,添加三个用户user1,user2,user3,其分别属于组group1, group2, group3
编辑一个文件:adduser.yaml
执行:ansible-playbook adduser.yaml
执行:ansible-playbook adduser.yaml
- hosts: webservers
remote_user: root
# 添加组
tasks:
- name: add some groups
group: name={{ item }} state=present
with_items:
- group1
- group2
- group3
# 添加用户
- name: add some users
user: name={{ item.name }} group={{ item.group }} state=present
with_items:
- { name: 'user1', group: 'group1'}
- { name: 'user2', group: 'group2'}
- { name: 'user3', group: 'group3'}
执行结果:
在两台受控主机上查看/etc/passwd和/etc/group文件,可以发现都创建了用户user1,user2,user3以及组group1, group2, group3。