roles
vim ansible.cfg
[
roles_path= ~/.ansible/roles 添加roles
]
mkdir roles
cd roles/
ansible-galaxy init apache 创建目录结构
在.ansible下
vim http.yml
[
- name: create web
hosts: westos
roles:
- role: apache
]
在 roles/apache下
vim tasks/main.yml
[
- name: install
dnf:
name: httpd
state: present
- name: start apache
service:
name: httpd
state: started
enabled: yes
- name: firewalld set
firewalld:
service: http
permanent: yes
state: enabled
immediate: yes
- name: create documentroot
file:
path: "{{item.doc}}"
state: directory
loop:
"{{webs}}"
- name: create index.html
copy:
dest: "{{item.doc}}/index.html"
content: "{{item.index}}"
loop:
"{{webs}}"
- name: create vhost.conf
template:
src: ./httpd.j2
dest: /etc/httpd/conf.d/vhosts.conf
notify: restart apache
]
vim handlers/main.yml
[
- name: restart apache
service:
name: httpd
state: restarted
]
vim vars/main.yml
[
webs:
- doc: /var/www/html
index: www.westos.org
- name: linux.westos.org
doc: /var/www/virtual/westos.org/linux
index: linux.westos.org
- name: java.westos.org
doc: /var/www/virtual/westos.org/java
index: java.westos.org
]
=================================================
控制任务执行顺序
vim http.yml
[
- name: create web
hosts: westos
roles:
- role: apache
pre_tasks: -------在play前执行
- name: remove apache
dnf:
name: httpd
state: absent
post_tasks: ---------在play后执行
- name: sucessful
debug:
msg: web configur sucessfully
tasks: -------普通任务
- name: install lftp
dnf:
name: lftp
state: present
notify: install message
handlers: ------选择执行触发器
- name: install message
debug:
msg: message is ok
]
====================================================
ansible-galaxy命令工具
tar zcf /tmp/apache.tar.gz apache/ -----把.ansible/roles的apche打包到tmp
vim install_apache.yml
[
- src: file:///tmp/apache.tar.gz
name: westos
]
ansible-galaxy install -r install_apache.yml
查看解压的westos