4.1-ansible实例-安装nginx上

Ansible 安装nginx


* 思路:先在一台机器上编译安装好nginx、打包,然后再用ansible去下发


1./usr/local/nginx/是已经编译安装好的nginx文件,配置好了启动脚本和配置文件。

2.cd /usr/local                  #进入上一级目录

3.tar czvf nginx.tar.gz nginx    #将目录打包

4.cd /etc/ansible   进入ansible配置文件目录

5.mkdir  nginx_install   创建一个nginx_install的目录,方便管理

6.cd nginx_install

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


说明:roles目录下有两个角色,common为一些准备操作,如安装一些依赖包。install为安装nginx的操作。每个角色下面又有几个目录,handlers下面是当发生改变时要执行的操作,通常用在配置文件发生改变,重启服务。files为安装时用到的一些文件,meta为说明信息,说明角色依赖等信息,tasks里面是核心的配置文件,templates通常存一些配置文件,启动脚本等模板文件,可以根据不同的机器配置,下发不同的配置文件。vars下为定义的变量

8.cd  /etc/ansible/nginx_install/roles/common/tasks


* 定义common/tasks文件

9.vim main.yml     #定义common的tasks,nginx是需要一些依赖包的.内容如下

---

- name: Install initializtion require software #名称

  yum: name={{ item }} state=installed          #yum模块,循环安装包

  with_items:

    - zlib-devel

    - pcre-devel

    - openssl-devel

说明:不管在哪个目录下,总入口配置文件名字为main.yml


* 定义install/files文件

10.cd  /etc/ansible/nginx_install/roles/install/

11.cp /usr/local/nginx.tar.gz /etc/ansible/nginx_install/roles/install/files/nginx.tar.gz  #复制包到指定目录files下


* 定义install/templates文件

12.cp /usr/local/nginx/conf/nginx.conf templates/  #复制配置文件到templates下

   cp /etc/init.d/nginx templates/                 #复制启动脚本到templates下


* 定义install/vars文件

13.vim vars/main.yml   #内容如下

nginx_user: www      

nginx_port: 80       #可不写,用不到

nginx_basedir: /usr/local/nginx   #定义客户端解压到哪个目录下去


* 定义install/tasks文件,复制相关文件到指定目录

14.vim tasks/copy.yml

- name: Copy Nginx Software    #模块copy的src相对目录为files/,所以可以直接写。

  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模块和copy模块功能相似

  template: src=nginx dest=/etc/init.d/nginx owner=root group=root mode=0755

- name: Copy Nginx Config  #引用的变量在vars中已经定义了

  template: src=nginx.conf dest={{ nginx_basedir }}/conf/ owner=root group=root mode=0644


15.vim tasks/install.yml  #定义建立用户,启动服务,删除压缩包

- name: Create Nginx User  #www用户是nginx的配置文件中定义的,没有会报错,所以要添加用户

  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


说明:state=present表示创建用户 createhome=no表示不创建家目录

你可能感兴趣的:(安装,实例,ansible)