1.创建roles文件夹

mkdir roles

2.在roles文件夹里面创建文件夹

  cd roles/

  mkdir {nginx,uwsgi,redis,mysql}

3.cd nginx

4.mkdir tasks/

5.cd tasks/

6.vi install.yml

  1. - name: install
  2. yun:name=nginx

vi copyfile.yml

  1. - name : copyfile
  2. template:src=nginx.conf dest=/etc/nginx/nginx.conf

vi start.yml

  1. - name: start
  2. service:name=nginx state=started enabled=yes

vi main.yml

  1. - import_tasks: install.yml
  2. - import_tasks: copyfile.yml
  3. - import_tasks: start.yml

7.在nginx目录下安装nginx            yum install -y nginx

8. 创建一个templates目录,和tasks目录同级   mkdir templates

9.cd templates/

10.cp /etc/nginx/nginx.conf .   将nginx配置文件拷贝到templtes文件夹下

ansible 127.0.0.1 -m setup -a "filter=*process*"   #查询cpu个数

11.vi nginx.conf

  1.   #改变两个参数
  2.  
  3.   worker_processes {{ansible_processor_vapus*2}} #这里设置为cpu的个数或者cpu个数的两倍
  4.  
  5.   events{
  6.  
  7. worker_connections 102400; #这是连接数,可以调大
  8.  
  9. }
  10.  
  11.   server{ #介绍
  12.  
  13.     listen# 第一个监听ipv4
  14.  
  15.     listen #第二个监听ipv6
  16. }

12.如果不需要传变量需要创建一个files的目录,和tasks在同一级目录下

mkdir files

以下是实例

  cd files/

  echo "test">>c.txt

  cd ..

  vi tasks/main.yml

  1. - name :file
  2. copy:dest=/tmp/aaa.txt src=c.txt

13.如果要是传变量的话,在tasks的同级目录下创建一个vars的目录

mkdir vars

vi vars/main.yml

  1. {"user":alex}

vi tasks/main.yml

  1. - name:createuser
  2. user: name={{user}}

14.使用handler同样需要在tasks的同级目录下创建handlers目录

mkdir handlers

vi handlers/main.yml

  1. - name: restartngnx
  2. service: name=nginx state=restarted

vi tasks/main.yml

  1. notify:restart #用来触发handlers

15.在roles平级的目录下

vi nginx.yml

  1. - hosts : web
  2. roles:
  3. - nginx
  1. #web是一个ip组的名称相当于一个ip

16.ansible-playbook --syntax-chek nginx.yml   测试代码没有问题

17.ansible-playbook  nginx.yml   启动代码

18. vi roles/nginx/templates/nginx.conf 

  1. server{
  2. listen 80;
  3. listen [::]:80; #改这两个参数
  4. }
  1. roles
  2.  
  3. - 目录结构清晰
  4. - 可以相互调用 - import_tasks: roles/nginx/tasks/install.yml
  5. - 备份方便
  6.  
  7. 解耦
  8.  
  9. ```
  10. roles/nginx/
  11. ├── files -- 静态文件
  12. │   └── c.txt
  13. ├── handlers -- 触发的任务
  14. │   └── main.yml
  15. ├── tasks -- 任务(必须的)
  16. │   ├── copyfile.yml
  17. │   ├── install.yml
  18. │   ├── main.yml
  19. │   └── start.yml
  20. ├── templates -- 动态文件,需要传递参数
  21. │   └── nginx.conf
  22. └── vars -- 变量
  23. └── main.yml
  24.  
  25. ```
  26.  
  27. 查找顺序
  28.  
  29. - 主文件看到roles,就回去roles目录下面找对应的目录
  30. - 先去tasks目录里面找main.yml文件,如果遇到import_task则加载任务
  31. - 如果遇到了template,则去templates目录里面找文件
  32. - 如果遇到了copy,则去files目录里面找文件
  33. - 如果遇到了变量,则去vars目录里面找main.yml文件
  34. - 如果遇到了notify,则去handlers目录里面找main.yml文件

互相调用(uwsgi调用nginx的安装程序nginx.yml)

1.cd roles/uwsgi/

2.vi tasks/main.yml

  1. - import_tasks:roles/nginx/tasks/install.yml

3.在roles同级目录下

vi uwsgi.yml

  1. -hosts:web
  2. roles:
  3. - uwsgi
  4. #web是一个ip组的名称相当于一个ip

4.ansible-playbook uwsgi.yml    启动文件

这样就调用成功

ansible的roles使用的更多相关文章

  1. Ansible的roles标准化与Jenkins持续集成(三)

    Ansible的roles标准化与Jenkins持续集成(三) 链接:https://pan.baidu.com/s/1A3Iq3gGkGS27L_Gt37_I0g 提取码:ncy2 复制这段内容后打 ...

  2. Ansible:roles初始化系统

    简介 本文介绍ansible的roles,通过roles来实现系统的初始化,其相当于将ansible的playbook拆分.本文通过Jenkins,传参,调用playbook来初始化系统. Githu ...

  3. Ansible之roles模块--lnmp分布式部署

    Ansible之roles模块--lnmp分布式部署 目录 Ansible之roles模块--lnmp分布式部署 1. role模块的作用 2. roles的目录结构 3. roles内个目录含义解释 ...

  4. ansible基础-roles

    一 简介 注:本文demo使用ansible2.7稳定版 在我看来,role是task文件.变量文件.handlers文件的集合体,这个集合体的显著特点是:可移植性和可重复执行性. 实践中,通常我们以 ...

  5. Git+Gitlab+Ansible的roles实现一键部署Nginx静态网站(一)--技术流ken

    前言 截止目前已经写了<Ansible基础认识及安装使用详解(一)--技术流ken>,<Ansible常用模块介绍及使用(二)--技术流ken><Ansible剧本介绍及 ...

  6. Ansible playbook roles

    1  概述 角色(roles):如果我们使用playbook写成一个文件,这个文件会很大,但是不方便组织,我们可以分组,把playbook根据功能,如handler,tasks等分门别类的放在在各自的 ...

  7. Ansible Playbook Roles and Include Statements

    介绍 虽然可以在一个非常大的文件中编写一个playbook(您可能会以这种方式开始学习playbook),但最终您将需要重新使用文件并开始组织事情. 在基本级别,饱含任务的文件允许您将配置策略分解成较 ...

  8. Ansible之roles角色

    一.roles简介 ansible自1.2版本引入的新特性,用于层次性.结构化地组织playbook.roles能够根据层次型结构自动装载变量文件.tasks以及handlers等.要使用roles只 ...

  9. ansible 模块 roles

    setup 作用,用来查看用看内部的详细信息 ansible_all_ipv4_addresses # ipv4的所有地址 ansible_all_ipv6_addresses # ipv6的所有地址 ...

  10. 自动化运维工具Ansible之Roles测验详解

    Ansible Roles 详解与实战案例 主机规划 添加用户账号 说明: 1. 运维人员使用的登录账号: 2. 所有的业务都放在 /app/ 下「yun用户的家目录」,避免业务数据乱放: 3. 该用 ...

随机推荐

  1. Spring 配置文件 ?

    Spring 配置文件是个 XML 文件,这个文件包含了类信息,描述了如何配置它们,以及如何相互调用.

  2. C++ | 虚函数产生条件

    虚函数产生的条件 能否成为虚函数主要有以下两种判断依据,如果以下两种条件均满足,则具有成为虚函数的条件. 1.虚函数机制为动多态提供支持,而虚函数表中存放着虚函数的地址.因此虚函数必须是可以取地址的函 ...

  3. 使用Bootstrap typeahead插件实现搜索框自动补全的配置参数。

    示例代码: <input type="text" id="addr"/> <input type="text" hidde ...

  4. C# 语法糖测试--未完待续

    /// <summary> /// string扩展方法,可以用字符串变量加.的形式直接调用,this是关键 /// </summary> public static clas ...

  5. sql server学习总结一

    一,数据库的三级模式结构 1.    模式 模式又称逻辑模式或者概念模式,是数据库中全体数据的逻辑结构和特征的描述,一个数据库只有一个模式,模式处于三级结构的中间层. 2.    外模式 外模式又称用 ...

  6. 不同标准下的C语言常量范围的默认类型的检测 (测试样例为C90与C99)

    不同标准下的C语言常量范围的默认类型的检测 一.C90与C99标准下的不同常量范围的默认类型     C90标准下对不同常量范围默认类型的检测实现及运行结果: C99标准下对不同范围默认类型的检测实现 ...

  7. 记一次线上websocket返回400问题排查

    现象 生产环境websocket无法正常连接,服务端返回400 bad request,开发及测试环境均正常. 抓包排查 src:nginx服务器 172.16.177.193dst:imp应用服务器 ...

  8. zabbix proxy cannot perform check now for itemid [xxxxx]: item is not in cache

    情况 接上次做完容器部署proxy后,为其添加host进行添加任务. 发现一直没有数据,就到item里面执行 execute now. 然后过了几分钟回来一看,还是没有. Emmm,看下log吧. S ...

  9. 【dp/贪心】CF 780 (Div. 3), problem: (C) Get an Even String

    Problem - C - Codeforces 难度: 1300 input 6 aabbdabdccc zyx aaababbb aabbcc oaoaaaoo bmefbmuyw output ...

  10. codeforces标签设置【codeforces内操作, 非浏览器操作】

    直接干货~ 明确需求,关闭标签 步骤: 1.选中上方PROBLEM SET 2.找到Settings  第一个选项是展示未accepted的标签, 第二个选项是隐藏已accepted的标签 官方标签设 ...