• 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

    执行结果:

  • 相关阅读:
    UVA 10976 Fractions Again?! 简单枚举题
    UVa 11059 Maximum Product(简单枚举7.1)使用longlong,输出格式%lld
    《Java核心技术卷I》——第5章 继承
    《Java核心技术卷I》——第3章 Java的基本程序设计结构
    windows服务器监控多个tomcat运行状态
    org.apache.jasper.JasperException: javax.el.PropertyNotFoundException: Property [xxx] not readable on type [xxx]
    断点续传
    创建密码带有特殊字符的dblink
    带有空格或tab的字符串的判断
    SQLState: 23000
  • 原文地址:https://www.cnblogs.com/mustark/p/11112853.html
Copyright © 2020-2023  润新知