nginx安装(ansible实践)

来源:互联网 发布:如何做淘宝推广赚钱 编辑:程序博客网 时间:2024/06/07 03:11
0.准备
    安装ngixn源码包于主机的/usr/local下
1.创建ansible相关目录和配置文件
  1. cd /etc/ansible/
  2. #创建总目录
  3. mkdir nginx_install
  4. #建立角色目录
  5. mkdir nginx_install/roles
  6. #安装前准备工作目录
  7. mkdir -p nginx_install/roles/common/tasks/
  8. #创建安装主配置目录
  9. mkdir nginx_install/roles/install
  10. #核心配置文件,分发资源和安装nginx
  11. mkdir nginx_install/roles/install/tasks
  12. #存储由copyscript等模块调用的文件
  13. mkdir nginx_install/roles/install/files
  14. #此目录中至少应该有一个名为main.yml的文件,用于定义各handler
  15. #其它的文件需要由main.yml进行“包含”调用
  16. mkdir nginx_install/roles/install/handlers
  17. #存储由template模块调用的模板文本;
  18. mkdir nginx_install/roles/install/templates
  19. #此目录中至少应该有一个名为main.yml的文件,用于定义各variable
  20. #其它的文件需要由main.yml进行“包含”调用;
  21. mkdir nginx_install/roles/install/vars

   1.总安装文件(nginx_install/install.yml)
  1. vim /etc/ansible/nginx_install/install.yml
  2. - hosts: web
  3. remote_user: root
  4. gather_facts: True
  5. roles:
  6. - common
  7. - install
   2.安装前准备的配置文件(roles/common)
  1. vim /etc/ansible/nginx_install/roles/common/tasks/main.yml
  2. - name: install initaliztion require software
  3. yum: name={{ item }} state=installed
  4. with_items:
  5. - gcc
  6. - zlib
  7. - zlib-devel
  8. - pcre
  9. - pcre-devel
  10. - openssl
  11. - openssl-devel

   3.安装主配置(roles/install)
       1.task:核心配置文件,分发资源
           1.main.yml #入口文件
  1. vim /etc/ansible/nginx_install/roles/install/tasks/main.yml
  2. - include: copy.yml
  3. - include: install.yml

           2.copy.yml #拷贝压缩包、解压缩、拷贝启动脚本、拷贝配置文件
  1. vim /etc/ansible/nginx_install/roles/install/tasks/copy.yml
  2. - name: copy nginx software
  3. copy: src=nginx.tar.gz dest=/tmp/nginx.tar.gz owner=root group=root
  4. - name: uncompression nginx software
  5. shell: tar zxf /tmp/nginx.tar.gz -C /usr/local/
  6. - name: copy nginx start script
  7. template: src=nginx dest=/etc/init.d/nginx owner=root group=root mode=0755
  8. - name: copy nginx config
  9. template: src=nginx.conf dest={{ nginx_basedir }}/conf/ owner=root group=root mode=0644
           3.install.yml #创建运行用户、启动nginx系统服务、删除压缩文件
  1. vim /etc/ansible/nginx_install/roles/install/tasks/install.yml
  2. - name: create nginx user
  3. user: name={{ nginx_user }} state=present createhome=no shell=/sbin/nologin
  4. - name: start nginx service
  5. shell: service nginx restart
  6. - name: add boot start nginx service shell: chkconfig nginx on
  7. - name: delete nginx compression files
  8. shell: rm -rf /tmp/nginx.tar.gz
       2.vars:定义变量
           1.main.yml #定义变量运行用户、端口、安装目录
  1. vim /etc/ansible/nginx_install/roles/install/vars/main.yml
  2. nginx_user: www
  3. nginx_port: 80
  4. nginx_basedir: /usr/local/nginx
       3.files:存放nginx.tar.gz等文件
  1. cd /usr/local/
  2. tar -zcf nginx.tar.gz nginx/
  3. cp nginx.tar.gz /etc/ansible/nginx_install/roles/install/files/   
      4.templates:模板配置文件,如启动脚本
  1. cp /usr/local/nginx/conf/nginx.conf /etc/ansible/nginx_install/roles/install/templates/
  2. cp /etc/init.d/nginx /etc/ansible/nginx_install/roles/install/templates/
       5.handers:发生改变执行的操作,如配置文件改变,则重启
2.执行总配置文件
  1. ansible-playbook install.yml
nginx ansible安装代码:https://github.com/msun1996/Ansible.git (更新中)

学习博客:http://huangzp.blog.51cto.com/12434999/1910084 
0 0
原创粉丝点击