第9课 Ansible roles 角色(7/25)
第1章 ansible roles 介绍
官方地址:
https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html
第2章 角色目录结构
2.1 目录说明
官方的目录结构定义:
1 | [root@ssh-61 ~]# cd /etc/ansible/roles/ |
2.2 创建项目目录
因为每台服务器都需要创建用户组,用户,安装服务等,所以我们可以将这些相同的任务单独创建一个init初始化角色。
角色规划:
1 | 1.init #初始化任务 |
创建角色目录:
1 | [root@ssh-61 ~]# cd /etc/ansible/roles/ |
第3章 编写init角色剧本
3.1 创建项目目录
1 | [root@ssh-61 ~]# cd /etc/ansible/roles/ |
3.2 编写tasks任务剧本
1 | [root@ssh-61 /etc/ansible/roles/init/tasks]# cat main.yml |
3.3 编写jinja模版文件
1 | [root@ssh-61 /etc/ansible/roles/init/templates]# tree |
3.4 编写handlers文件
1 | [root@ssh-61 /etc/ansible/roles/init/handlers]# cat main.yml |
3.5 写主任务文件
1 | [root@ssh-61 /etc/ansible/roles/site]# cat init.yml |
3.6 最终目录
1 | [root@ssh-61 /etc/ansible/roles]# tree init |
第4章 编写rsync角色剧本
4.1 创建对应目录
1 | mkdir /etc/ansible/roles/rsync_server/{vars,tasks,templates,handlers,files} -p |
服务器端
4.2 编写任务剧本
1 | [root@ssh-61 /etc/ansible/roles/rsync_server/tasks]# cat main.yml |
4.3 编写jinja模版文件
1 | [root@ssh-61 /etc/ansible/roles/rsync_server/templates]# tree |
4.4 编写变量文件
1 | [root@ssh-61 /etc/ansible/roles/rsync_server/vars]# cat main.yml |
4.5 编写handlers文件
1 | [root@ssh-61 /etc/ansible/roles/rsync_server/handlers]# cat main.yml |
4.6 编写主任务文件
1 | [root@ssh-61 /etc/ansible/roles/site]# cat rsync_server.yml |
4.7 最终目录
1 | [root@ssh-61 /etc/ansible/roles]# tree -L 3 rsync_server |
第5章 编写nfs角色剧本
创建对应目录
1 | mkdir /etc/ansible/roles/{nfs_server,nfs_client}/{vars,tasks,templates,handlers,files} -p |
5.1 nfs服务器端
5.1.1 编写任务剧本
1 | [root@ssh-61 /etc/ansible/roles/nfs_server/tasks]# cat main.yml |
5.1.2 编写jinja模版文件
1 | [root@ssh-61 /etc/ansible/roles/nfs_server/templates]# cat exports.j2 |
5.1.3 编写handlers文件
1 | [root@ssh-61 /etc/ansible/roles/nfs_server/handlers]# cat main.yml |
5.1.4 编写主任务文件
1 | [root@ssh-61 /etc/ansible/roles/site]# cat nfs_server.yml |
5.1.5 最终目录
1 | [root@ssh-61 /etc/ansible/roles]# tree -F 3 nfs_server/ |
5.2 nfs客户端
5.2.1 编写任务剧本
1 | [root@ssh-61 /etc/ansible/roles/nfs_client/tasks]# cat main.yml |
5.2.2 编写主任务文件
1 | [root@ssh-61 /etc/ansible/roles/site]# cat nfs_client.yml |
5.2.3 最终目录
1 | [root@ssh-61 /etc/ansible/roles]# tree -F 3 nfs_client/ |
第6章 编写lsyncd角色剧本
创建对应目录
1 | mkdir /etc/ansible/roles/lsyncd/{vars,tasks,templates,handlers,files} -p |
6.1 编写任务剧本
1 | [root@ssh-61 /etc/ansible/roles/lsyncd/tasks]# cat main.yml |
6.2 编写jinja模版文件
1 | [root@ssh-61 /etc/ansible/roles/lsyncd]# tree templates/ |
6.3 编写handlers文件
1 | [root@ssh-61 /etc/ansible/roles/lsyncd/handlers]# cat main.yml |
6.4 编写主任务文件
1 | [root@ssh-61 /etc/ansible/roles/site]# cat lsyncd.yml |
6.5 最终目录
1 | [root@ssh-61 /etc/ansible/roles]# tree -L 3 lsyncd |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 WF's Blog!
评论