代码
mkdir -p roles/{common,install}/{handlers,files,meta,tasks,templates,vars}
[iyunv@ansible nginx_install]# pwd
/nginx_install
[iyunv@ansible nginx_install]# vim install.yml
--- - hosts: apache
remote_user: root
gather_facts: True
roles:
- common
- install
[iyunv@ansible tasks]# pwd
/nginx_install/roles/common/tasks
[iyunv@ansible tasks]# cat main.yml
- name: install -zlib -pcre -openssl yum: name={{ item }} state=installed
with_items:
- zlib-devel
- pcre-devel
- openssl-devel
[iyunv@ansible install]# pwd
/nginx_install/roles/install
[iyunv@ansible install]# ls files/
nginx.tar.gz
[iyunv@ansible install]# ls templates/
nginx nginx.conf
[iyunv@ansible install]# cat vars/main.yml
nginx_user: www
nginx_basedir: /usr/local/nginx
[iyunv@ansible tasks]# cat main.ym
- include: copy.yml
- include: install.yml
[iyunv@ansible tasks]# cat copy.yml
- name: Copy Nginx Software copy: src=nginx.tar.gz dest=/tmp/nginx.tar.gz owner=root group=root
# 只要有用copy 那么nginx.tar.gz就直接从files里面获取了
- name: Uncompression Nginx Software
shell: tar zxf /tmp/nginx.tar.gz -C /usr/local/
- name: Copy Nginx Start Script
template: src=nginx dest=/etc/init.d/nginx owner=root group=root mode=0755
#template跟copy相同 if use template then src=nginx in templates
- name: Copy Nginx Config
template: src=nginx.conf dest={{ nginx_basedir }}/conf/ owner=root group=root mode=0644
cat install.yml
- name: Create Nginx User user: name={{ nginx_user }} state=present createhome=no shell=/sbin/nologin
- name: Start Nginx Service
service: name=nginx state=started
- name: Add Boot Start Nginx Service
shell: chkconfig --level 345 nginx on
- name: Delete Nginx compression files
shell: rm -rf /tmp/nginx.tar.gz
|