第一章 Ansible rolers介绍
官方地址:
https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html
第二章 角色目录规划
01.目录说明:
官方的目录结构,必须这样定义!
[root@m01 ~]# cd /etc/ansible/roles/
[root@m01 /etc/ansible/roles]# tree
.
├── nfs #角色名称
│ ├── files #存放需要copy的文件
│ ├── handlers #触发任务剧本
│ ├── tasks #具体任务剧本
│ ├── templates #模版文件
│ └── vars #存放变量文件
02.创建项目目录
因为每台服务器都需要创建用户组,用户,安装服务等,所以我们可以将这些相同的任务单独创建一个init初始化角色。
角色规划:
1.init #初始化任务
2.rsync #rsync服务
3.nfs #nfs服务
4.lsyncd #lsyncd服务
创建角色目录:
[root@localhost roles]# mkdir {init,nfs,rsync,lsyncd}/{vars,tasks,templates,handlers,files} -p
[root@localhost roles]# tree
.
├── init
│ ├── files
│ ├── handlers
│ ├── tasks
│ ├── templates
│ └── vars
├── lsyncd
│ ├── files
│ ├── handlers
│ ├── tasks
│ ├── templates
│ └── vars
├── nfs
│ ├── files
│ ├── handlers
│ ├── tasks
│ ├── templates
│ └── vars
└── rsync
├── files
├── handlers
├── tasks
├── templates
└── vars
第三章 编写init角色剧本
01.创建对应目录
mkdir /etc/ansible/roles/init/{vars,tasks,templates,handlers,files} -p
02.编写任务剧本
[root@m01 ~]# cat /etc/ansible/roles/init/tasks/main.yml
#01.配置base源
- name: 01_configure_yum_repos
yum_repository:
name: base
description: base yum repo
baseurl:
- http://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/$basearch/
gpgcheck: no
#02.配置epel源
- name: 02_configure_yum_Repos
yum_repository:
name: epel
description: epel yum repo
baseurl:
- https://mirrors.tuna.tsinghua.edu.cn/epel/7/$basearch
gpgcheck: no
#03.安装常用软件
- name: 03_install_server
yum:
name: "{{ packages }}"
vars:
packages:
- ntpdate
- lsof
- tree
- iftop
- iotop
#04.创建用户组
- name: 04_create_group
group:
name: www
gid: 666
#05.创建用户
- name: 05_create_user
user:
name: www
uid: 666
group: www
shell: /sbin/nologin
create_home: no
#06.创建数据目录和脚本目录
- name: 06_create_dir
file:
path: "{{ item }}"
state: directory
mode: '0755'
loop:
- /data
- /server/scripts
#07.创建同步时间定时任务
- name: 07_cron_ntpdate
cron:
name: Time_Update
minute: "*/5"
job: '/sbin/ntpdate time1.aliyun.com'
#08.拷贝优化后的ssh配置文件
- name: 08_copy_ssh
template:
src: sshd_config.j2
dest: /etc/ssh/sshd_config
mode: '0600'
backup: yes
notify: restart sshd
03.编写jinja模版文件
未完