zoukankan      html  css  js  c++  java
  • ansible-role

     

    roles内各目录含义解释

    files:用来存放由copy模块或script模块调用的文件。
    templates:用来存放jinjia2模板,template模块会自动在此目录中寻找jinjia2模板文件。
    tasks:此目录应当包含一个main.yml文件,用于定义此角色的任务列表,此文件可以使用include包含其它的位于此目录的task文件。
    handlers:此目录应当包含一个main.yml文件,用于定义此角色中触发条件时执行的动作。
    vars:此目录应当包含一个main.yml文件,用于定义此角色用到的变量。
    defaults:此目录应当包含一个main.yml文件,用于为当前角色设定默认变量。
    meta:此目录应当包含一个main.yml文件,用于定义此角色的特殊设定及其依赖关系。

    ansible role 安装nginx

    创建目录

    sudo mkdir nginx/{files,templates,vars,handlers,meta,default,tasks} -pv

    查看目录树

     

    配置tasks文件

    1、下载依赖包

    [dwchensenwen@vms20 tasks]$ cat pkg.yaml 
    - name: 安装依赖包
      yum: name={{ item }} state=latest
      with_items:
        - pcre-devel
        - openssl-devel

    2、创建目录

    [dwchensenwen@vms20 tasks]$ cat mkdir.yaml 
    - name: 创建目录
      command: >
        mkdir -p /server/tools
        mkdir -p /application

    3、创建一个管理nginx进程的虚拟用户

    [dwchensenwen@vms20 tasks]$ cat user.yaml 
    - name: 创建一个管理nginx进程的虚拟用户
      user: name=www shell=/sbin/nologin/ state=present

    4、nginx安装包获取、解压、编译

    [dwchensenwen@vms20 tasks]$ cat nginx_common.yaml 
    - name: 下载nginx软件包
      copy: src=/etc/ansible/roles/nginx/files/nginx-1.12.2.tar.gz dest=/server/tools/nginx-1.12.2.tar.gz
    
    - name: 解压NGINX软件包
      command: >
        tar -C /server/tools -xvf /server/tools/nginx-1.12.2.tar.gz
    
    - name: 编译安装NGINX
      shell: cd /server/tools/nginx-1.12.2;./configure --prefix=/application/nginx-1.12.2 --user=www --group=www --with-http_ssl_module --with-http_stub_status_module;make && make install
    
    - name: nginx程序软件创建链接目录
      file: src=/application/nginx-1.12.2 dest=/application/nginx state=link

    5、nginx配置文件

    [dwchensenwen@vms20 tasks]$ cat nginx_file.yaml 
    - name: nginx配置文件
      copy: src=/etc/ansible/roles/nginx/files/nginx.conf dest=/application/nginx/conf/nginx.conf
      notify: restart nginx

    6、启动nginx

    [dwchensenwen@vms20 tasks]$ cat start.yaml 
    - name: 启动NGINX程序服务
      shell: /application/nginx/sbin/nginx

    7、设置tasks执行顺序

    [dwchensenwen@vms20 tasks]$ cat main.yaml 
    - include: pkg.yaml
    - include: user.yaml
    - include: mkdir.yaml
    - include: nginx_common.yaml
    - include: nginx_file.yaml
    - include: start.yaml

    配置handler

    [dwchensenwen@vms20 handlers]$ cat main.yaml 
    - name: restart nginx
      service: name=nginx state=restarted

    配置file

    file目录下,软件包和配置文件,可以先下载和配置完毕,这样就减去下载和手动配置的时间。

    配置nginx_install.yaml

    [dwchensenwen@vms20 ansible]$ cat nginx_install.yaml 
    - hosts: 192.168.30.22
      become: yes
      become_method: sudo
      roles:
        - role: nginx

    此文件与roles目录同层级

    执行命令

    ansible-playbook nginx_install.yaml

    执行结果:

  • 相关阅读:
    mysql 数据类型学习笔记(持续更新)
    datetime 和 timestamp 的区别
    Jupyter notebook 常用快捷键(持续更新)
    遍历SnoMed的multiHierarchy中给定概念的子概念
    Ramdom Walk with Restart
    矩阵和向量
    power-law
    一些SQL操作(收集)
    MySQL5.7.19-win64安装启动
    OO_UNIT1_SUMMARY
  • 原文地址:https://www.cnblogs.com/mustark/p/11112853.html
Copyright © 2011-2022 走看看