创建角色和变量
角色创建流程
在Ansible中创建角色不需要特别的开发工具。创建和使用角色包含三个步骤:
- 创建角色目录结构
- 定义角色内容
- 在playbook中使用角色
创建角色目录(独享)
[root@control2 test]# mkdir -p httpd/{defaults,vars,files,templates,tasks,handlers,test}
[root@control2 test]# tree httpd/
httpd/
|-- defaults
|-- files
|-- handlers
|-- tasks
|-- templates
|-- tests
`-- vars
[root@control2 test]# touch httpd/{defaults/main.yml,tasks/main.yml,vars/main.yml}
[root@control2 test]# tree httpd/
httpd/
|-- defaults
| `-- main.yml
|-- files
|-- handlers
|-- tasks
| `-- main.yml
|-- templates
|-- tests
`-- vars
`-- main.yml
创建角色(共享)
[root@control2 test]# ansible-galaxy init apache
- Role apache was created successfully
[root@control2 test]# ls
apache httpd roles
[root@control2 test]# tree apache/
apache/
|-- README.md
|-- defaults //默认值
| `-- main.yml
|-- files
|-- handlers //触发程序
| `-- main.yml
|-- meta
| `-- main.yml
|-- tasks //任务文件
| `-- main.yml
|-- templates //模板文件 .j2
|-- tests //play文件
| |-- inventory
| `-- test.yml
`-- vars
`-- main.yml //变量
用角色安装httpd
在apache/tasks/main.yml编写play
[root@control2 tasks]# cat main.yml
---
# tasks file for apache
- name: install apache
yum:
name: httpd
state: present
- name: install policycoreutils-python-utils //可有可无
yum:
name: policycoreutils-python-utils
state: present
- name: config apache
template:
src: httpd.conf.j2 //事先准备好httpd.conf.j2模板
dest: /etc/httpd/conf/httpd.conf
- name: service apache
service:
name: httpd
state: restarted #重启服务 #也可以写started