ansible-playbook 安装nginx

 

代码

mkdir -p roles/{common,install}/{handlers,files,meta,tasks,templates,vars}

[root@ansible nginx_install]# pwd
/nginx_install

[root@ansible nginx_install]# vim install.yml

---
  - hosts: apache
    remote_user: root
    gather_facts: True
    roles:
      - common
      - install

[root@ansible tasks]# pwd
/nginx_install/roles/common/tasks

[root@ansible tasks]# cat main.yml 

- name: install -zlib -pcre -openssl
  yum: name={{ item }} state=installed
  with_items:
    - zlib-devel
    - pcre-devel
    - openssl-devel

[root@ansible install]# pwd
/nginx_install/roles/install

[root@ansible install]# ls files/
nginx.tar.gz
[root@ansible install]# ls templates/
nginx nginx.conf

[root@ansible install]# cat vars/main.yml

nginx_user: www
nginx_basedir: /usr/local/nginx

[root@ansible tasks]# cat main.ym

- include: copy.yml
- include: install.yml

[root@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

  

 

posted @ 2017-01-13 18:39  onlylc  阅读(103)  评论(0)    收藏  举报