zoukankan      html  css  js  c++  java
  • playbook实现nginx安装

    1. 先在一台机器上编译安装好nginx,然后打包

    tar -zcvf nginx.tar.gz /usr/local/nginx --exclude=conf/nginx.conf --exclude=conf/vhosts

    2. 进入ansible配置文件目录,创建一个nginx_install目录

    cd /etc/ansible
    mkdir nginx_install

    3. 进入nginx_install目录,创建目录结构

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

    PS:roles目录下面有两个角色,common主要是做一些准备工作,install为安装nginx的操作;每个角色下面有相应的目录,handlers下面主要是当发生改变时要执行的操作,通常是配置文件发生改变,重启服务。

    files为安装时用到的一些文件,meta为说明信息,tasks里面是核心的配置文件,templates通常存一些配置文件、启动脚本等模板文件,vars为定义的变量。

    4. 把压缩好的文件移动到/etc/ansible/nginx_install/roles/install/files/下面

    mv /usr/local/nginx.tar.gz /etc/ansible/nginx_install/roles/install/files/

    5. 把配置文件和启动脚本放到/etc/ansible/nginx_install/roles/install/templates下面

    mv /usr/local/nginx/conf/nginx.conf /etc/ansible/nginx_install/roles/install/templates/
    mv /etc/init.d/nginx /etc/ansible/nginx_install/roles/install/templates/

    6. 定义common的tasks,nginx需要依赖一些包

    cd /etc/ansible/nginx_install/roles/
    vim common
    /tasks/main.yml //内容如下: - name: Install initializtion require software yum: name={{ item }} state=installed with_items: - zlib-devel - pcre-devel

    7. 定义变量

    vim install/vars/main.yml //内容如下:

    nginx_user: www
    nginx_port: 80
    nginx_basedir: /usr/local/nginx

    8. 定义配置文件,把文件拷贝到对应的目标机器上面

    vim install/tasks/copy.yml //内容如下:

    - name: Copy Nginx Software
      copy: src=nginx.tar.gz dest=/tmp/nginx.tar.gz owner=root group=root
    - 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
    - name: Copy Nginx Config
      template: src=nginx.conf dest={{ nginx_basedir }}/conf/ owner=root group=root mode=0644

    9. 定义配置文件,新建用户、启动服务以及删除压缩包

    vim install/tasks/install.yml //内容如下:

    - name: Create Nginx User
      user: name={{ nginx_user }} state=present createhome=no shell=/sbin/nologin
    - name: Start Nginx Service
      shell: /etc/init.d/nginx start
    - name: Add Boot Start Nginx Service
      shell: chkconfig --level 345 nginx on
    - name: Delete Nginx compression files
      shell: rm -f /tmp/nginx.tar.gz

    10. 在tasks目录下面创建main.yml把copy和install调用

    vim install/tasks/main.yml //内容如下:

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

    11. 定义一个入口配置文件

    cd /etc/ansible/nginx_install
    vim install.yml  //内容如下:
    ---
    - hosts: 127.0.0.1
      remote_user: root
      gather_facts: true
      roles:
        - common
        - install

    PS:会依次调用roles下面的common、install,默认会执行对面目录下面tasks下的main.yml文件

    12. 执行

    ansible-playbook /etc/ansible/nginx_install/install.yml
  • 相关阅读:
    iOS7.0后隐藏状态栏(UIStatusBar)
    UITableView
    UIScrollView
    [IOS]edgesForExtendedLayout、automaticallyAdjustsScrollViewInsets
    UISearchController
    App开发流程之通用宏定义及头文件
    App开发流程之Xcode配置和本地化
    App开发流程之源代码Git管理
    App开发流程之增加预编译头文件
    App开发流程之配置Info.plist文件
  • 原文地址:https://www.cnblogs.com/654wangzai321/p/8046024.html
Copyright © 2011-2022 走看看