在剧本中设置循环信息
vim test04.yml
- hosts: all
remote_user: root
tasks:
- name: Add Users
user: name={{ item.name }} groups={{ item.groups }} state=present
with_items:
- { name: 'testuser1', groups: 'bin' }
- { name: 'testuser2', groups: 'root' }
vim test05.yml
- hosts: all
remote_user: root
tasks:
- name: Installed Pkg
yum: name={{ item }} state=present
with_items:
- wget
- tree
- lrzsz
实践配置:
[root@m01 ansible_playbook]# cat test_循环功能.yaml
- hosts: 172.16.1.7
tasks:
#- name: 创建多个用户
# user: name={{ item.name }} shell={{ item.shell }} create_home={{ item.create_home }}
# with_items:
# - { name: 'oldboy01', shell: '/sbin/nologin', create_home: 'no' }
# - { name: 'oldboy02', shell: '/sbin/nologin', create_home: 'yes' }
# - { name: 'oldboy03', shell: '/bin/bash', create_home: 'yes' }
- name: 创建多个用户
user: name={{ item }} shell=/sbin/nologin create_home=no
with_items:
- oldboy04
- oldboy05
- oldboy06
扩展说明:单独加载指定主机清单文件
ansible-playbook nfs_auto.yaml -i ./nfs_hosts
-i 指定加载主机清单
在剧本中设置忽略错误
默认playbook会检查命令和模块的返回状态,如遇到错误就中断playbook的执行
可以加入ignore_errors: yes忽略错误
vim test06.yml
- hosts: all
remote_user: root
tasks:
- name: Ignore False
command: /bin/false
ignore_errors: yes
- name: touch new file
file: path=/tmp/oldboy_ignore state=touch
实践配置:
[root@m01 ansible_playbook]# cat test_忽略错误.yaml
- hosts: 172.16.1.7
tasks:
- name: create user
shell: useradd oldboy01 -s /sbin/nologin -M
ignore_errors: yes
- name: create dir
shell: mkdir /oldboy
ignore_errors: yes
- name: create file
shell: touch /etc/oldboy.txt