剧本的编写
剧本编写注意事项:
不能用tab进行缩进
使用冒号时后面要有空格信息
以冒号结尾,冒号信息出现在注释说明中,后面不需要加上空格
使用-短横线构成列表信息,短横线后面需要有空格
若是格式不对,颜色显示不出来
一个name下,只能写一个模块
剧本组成示意图
image.png
利用剧本完成rsync服务的一键化部署
在ansible管理端61主机编写剧本,
①相关文件/目录准备:
mkdir /etc/ansible/ansible-playbook
touch rsync_server.yaml
cd /etc/ansible
mkdir server_file
cd server_file
mkdir rsync_server
[root@m01 /etc/ansible/ansible-playbook]$ cd /etc/ansible
[root@m01 /etc/ansible]$ tree
.
├── ansible.cfg
├── ansible-playbook
│?? └── rsync_server.yaml
├── hosts
├── roles
└── server_file
└── rsync_server
└── rsyncd.conf
4 directories, 4 files
[root@m01 /etc/ansible]$
rsyncd配置文件/etc/rsyncd.conf
uid = rsync
gid = rsync
port = 873
fake super =yes
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 172.16.1.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]
comment = "backup dir by oldboy"
path = /backup
开始编写剧本文件
说明: 剧本文件扩展名为yaml,注意格式,注意缩进,注意空格,注意-
[root@m01 /etc/ansible/ansible-playbook]$ cat rsync_server.yaml
- hosts: 172.16.1.41
tasks:
- name: 01-install rsync
yum: name=rsync state=installed
- name: 02-push conf file
copy: src=/etc/ansible/server_file/rsync_server/rsyncd.conf dest=/etc/
- name: 03-create user
#user: name=rsync create_home=no shell=/sbin/nologin
shell: useradd rsync -M -s /sbin/nologin
- name: 04-create backup dir
file: path=/backup state=directory owner=rsync group=rsync
- name: 05-create password file
copy: content=rsync_backup:oldboy123 dest=/etc/rsync.password mode=600
- name: 06-start rsync server_file/rsync_server/rsyncd
service: name=rsyncd state=started enabled=yes
- hosts: 172.16.1.31,172.16.1.7
tasks:
- name: 01-install rsync
yum: name=rsync state=installed
- name: 02-create password file
copy: content=oldboy123 dest=/etc/rsync.password mode=600
- name: 03-create test file
file: dest=/tmp/test.txt state=touch
- name: 04-check test
shell: rsync -avz /tmp/test.txt rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
执行
①: 检查剧本的语法
cd /etc/ansible/ansible-playbook
ansible-playbook --syntax-check rsync_server.yaml
②: 模拟执行剧本, 实际不会执行
ansible-playbook -C rsync_server.yaml
③: 直接执行剧本
ansible-playbook rsync_server.yaml
成功返回的结果
image.png