第一章、一键完成以下项目
1.1、各一键完成rsync服务端和客户端。
- hosts: rsync_s
tasks:
- name: 服务端创建用户
user:
name: rsync
- name: 创建目录以及授权
file:
name: backup
owner: rsync
group: rsync
state: directory
- name: 服务端设置密码文件
copy:
content: rsync_backup:oldboy
mode: 0600
dest: /etc/rsync.password
- name: 重启服务并设置开机自启动
systemd:
name: rsyncd
state: started
enabled: yes
- hosts: rsync_c
tasks:
- name: 客户端设置密码文件
copy:
content: export RSYNC_PASSWORD=oldboy
dest: /etc/bashrc
- name: 推送测试
shell: rsync -az /etc/hosts rsync_backup@172.16.1.15::backup

image.png
1.2、各一键完成nfs服务端和客户端。
- hosts: nfs_s
tasks:
- name: 安装nfs和rpcbind
yum:
name: nfs-utils,rpcbind
state: installed
- name: 启动并设置开机启动
systemd:
name: nfs
name: rpcbind
enabled: yes
state: started
- name: 创建虚拟用户并指定UID
user:
name: www
uid: 1111
- name: 配置配置文件
shell: echo '/data 172.16.1.0/24(rw,sync,all_squash,anonuid=1111,anongid=1111)' >>/etc/exports
- name: 平滑重启
systemd:
name: nfs
state: reloaded
- name: 挂载
command: mount -t nfs 172.16.1.14:/data /opt
- hosts: nfs_c
tasks:
- name: 安装nfs和rpcbind
yum:
name: nfs-utils,rpcbind
state: installed
- name: 启动并设置开机启动
systemd:
name: nfs
name: rpcbind
enabled: yes
state: started
- name: 挂载
command: mount -t nfs 172.16.1.14:/data /opt

image.png
1.3、各一键完成sersync服务端和客户端。
- hosts: nfs_s
tasks:
- name: 启动sersync服务
shell: /application/sersync/bin/sersync -do /application/sersync/conf/confxml.xml

image.png
第三章、playbook
3.1、什么是playbook?
把所有操作按照ansible编程语法,放在文件里执行就是playbook

image.png
3.2、playbook的优势
1)功能比ad-hoc更全
2) 能很好的控制先后顺序,以及依赖关系
3)语法展现更加的直观
4)ad-hoc无法持久使用,playbook可以持久使用
3.2、ansible剧本编写格式说明
ansible剧本PYyaml语法规则进行缩写,yaml文件基本编写规则
规则1:缩进
yaml使用一个固定的缩进风格表示数据层结构关系,需要每个缩进级别有两个空格组成。
规则2:冒号
每个冒号后面一定要有一个空格(以冒号结尾不需要空格,表示文件路径的模板可以不需要空格)
规则3:短横线
想要表示列表项,使用一个短横杠加一个空格,多个项使用同样的缩进级别作为同一个列表的一部分
3.3、playbook 替代方案
playbook替代方案1:
判断、循环可以用脚本实现
测试: ansible-playbook -C /etc/ansible/yaml/p1.yml
执行: ansible-playbook /etc/ansible/yaml/p1.yml

image.png
playbook替代方案2:脚本写通用

image.png
第四章、ansible实践
实践1、echo oldboy linux >/tmp/oldboy.log
cd /etc/ansible/
mkdir yaml
cd /etc/ansible/yaml
vim p1.yml
ansible-playbook -C /etc/ansible/yaml/p1.yml
ansible-playbook /etc/ansible/yaml/p1.yml

image.png

image.png
实践2、touch /tmp/oldboy1

image.png

image.png
实践3、删除/tmp/oldboy1

image.png

image.png
网友评论