zz775520666 发表于 2018-7-30 09:37:39

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.mkdirnginx_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表示不创建家目录
页: [1]
查看完整版本: 4.1-ansible实例-安装nginx上