创建角色、Ansible-Galaxy的简单使用
创建角色
创建角色首先我们要创建角色框架,创建角色框架可以用Linux的标准命令创建,也可以用ansible提供的命令自动创建角色框架
第一种:用linux标准命令自创建
// 手动创建角色
[root@master2 playbook]# mkdir roles
[root@master2 playbook]# cd roles
[root@master2 roles]# ls
[root@master2 roles]# mkdir -p nginx/{defaults,vars,files,templates,tasks,handlers,test}
[root@master2 roles]# tree nginx
nginx
|-- defaults
|-- files
|-- handlers
|-- tasks
|-- templates
|-- test
`-- vars
7 directories, 0 files
[root@master2 roles]# touch nginx/{defaults/main.yml,tasks/main.yml,vars/main.yml}
[root@master2 roles]# tree nginx
nginx
|-- defaults
| `-- main.yml
|-- files
|-- handlers
|-- tasks
| `-- main.yml
|-- templates
|-- test
`-- vars
`-- main.yml
7 directories, 3 files
第二种:使用ansible-galaxy命令创建
// 通过ansible-galaxy创建角色:
ansible-galaxy init/初始化 httpd
[root@master2 roles]# ansible-galaxy init httpd
- Role httpd was created successfully
[root@master2 roles]# tree httpd/
httpd/
|-- README.md
|-- defaults
| `-- main.yml
|-- files
|-- handlers
| `-- main.yml
|-- meta
| `-- main.yml
|-- tasks
| `-- main.yml
|-- templates
|-- tests
| |-- inventory // 给别人使用需要添加meta,任务说明以及帮助文档的README.md
| `-- test.yml
`-- vars
`-- main.yml
8 directories, 8 files
[root@master2 roles]#
1 通过角色yum安装appache
1.1 在tasks写任务
[root@master2 roles]# vim httpd/tasks/main.yml
[root@master2 roles]# cat httpd/tasks/main.yml
---
# tasks file for httpd
- name: install apache
yum:
name: httpd
state: present
- name: service for apache
service:
name: httpd
state: started
1.2 在templates传输模板:
模板文件:
// 检查主机是否安装apache
[root@master2 roles]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
[root@master2 roles]# cd httpd/templates/
[root@master2 templates