1. ansible-角色-roles基本使用
  1.1) 创建roles目录结构

1 [root@test-1 ansible]# mkdir -p /ansible/roles/{common,nginx,php}/{tasks,handlers,defaults,vars,files,templates,meta}/
2 [root@test-1 ansible]# touch /ansible/{fooservers.yaml,hosts,site.yaml,webservers.yaml}
3 [root@test-1 ansible]# touch /ansible/roles/{common,nginx,php}/{tasks,handlers,defaults,vars,files,templates,meta}/main.yaml

1.2) 验证roles目录结构创建成功没

 1 [root@test-1 ansible]# tree /ansible/
2 /ansible/
3 ├── fooservers.yaml
4 ├── hosts
5 ├── roles
6 │   ├── common
7 │   │   ├── defaults
8 │   │   │   └── main.yaml
9 │   │   ├── files
10 │   │   │   └── main.yaml
11 │   │   ├── handlers
12 │   │   │   └── main.yaml
13 │   │   ├── meta
14 │   │   │   └── main.yaml
15 │   │   ├── tasks
16 │   │   │   └── main.yaml
17 │   │   ├── templates
18 │   │   │   └── main.yaml
19 │   │   └── vars
20 │   │   └── main.yaml
21 │   ├── nginx
22 │   │   ├── defaults
23 │   │   │   └── main.yaml
24 │   │   ├── files
25 │   │   │   └── main.yaml
26 │   │   ├── handlers
27 │   │   │   └── main.yaml
28 │   │   ├── meta
29 │   │   │   └── main.yaml
30 │   │   ├── tasks
31 │   │   │   └── main.yaml
32 │   │   ├── templates
33 │   │   │   └── main.yaml
34 │   │   └── vars
35 │   │   └── main.yaml
36 │   └── php
37 │   ├── defaults
38 │   │   └── main.yaml
39 │   ├── files
40 │   │   └── main.yaml
41 │   ├── handlers
42 │   │   └── main.yaml
43 │   ├── meta
44 │   │   └── main.yaml
45 │   ├── tasks
46 │   │   └── main.yaml
47 │   ├── templates
48 │   │   └── main.yaml
49 │   └── vars
50 │   └── main.yaml
51 ├── site.yaml
52 └── webservers.yaml
53
54 25 directories, 25 files

2. 案例,roles案例基本使用
 2.1) 编写site.yaml 程序执行文件

 1 [root@test-1 ansible]# cat site.yaml
2 ---
3 - hosts: web1
4 gather_facts: no
5
6
7 roles:
8 - common
9 - nginx
10 - php

2.2) 编写common公共使用tasks文件main.yaml

1 [root@test-1 ansible]# vim /ansible/roles/common/tasks/main.yaml
2 [root@test-1 ansible]# cat /ansible/roles/common/tasks/main.yaml
3 - name: common task test
4 debug: msg="common task test"

2.3) 编写nginx的tasks文件main.yaml

1 [root@test-1 ansible]# cat /ansible/roles/nginx/tasks/main.yaml
2 - name: nginx task test
3 debug: msg="nginx task test"

2.4) 编写php的tasks文件main.yaml

1 [root@test-1 ansible]# cat /ansible/roles/php/tasks/main.yaml
2 - name: php task test
3 debug: msg="php task test"

2.5) 检查site.yaml配置文件是否正确

1 [root@test-1 /]# cd /ansible/
2 [root@test-1 ansible]# ls
3 fooservers.yaml hosts roles site.yaml webservers.yaml
4 [root@test-1 ansible]# ansible-playbook --syntax-check site.yaml
5
6 playbook: site.yaml

3. 执行site.yaml文件
  3.1) 执行site.yaml文件

 1 [root@test-1 ansible]# ansible-playbook  site.yaml
2
3 PLAY [web1] *************************************************************************************************************************************************************
4
5 TASK [common : common task test] ****************************************************************************************************************************************
6 ok: [192.168.200.132] => {
7 "msg": "common task test"
8 }
9 ok: [192.168.200.133] => {
10 "msg": "common task test"
11 }
12
13 TASK [nginx : nginx task test] ******************************************************************************************************************************************
14 ok: [192.168.200.132] => {
15 "msg": "nginx task test"
16 }
17 ok: [192.168.200.133] => {
18 "msg": "nginx task test"
19 }
20
21 TASK [php : php task test] **********************************************************************************************************************************************
22 ok: [192.168.200.132] => {
23 "msg": "php task test"
24 }
25 ok: [192.168.200.133] => {
26 "msg": "php task test"
27 }
28
29 PLAY RECAP **************************************************************************************************************************************************************
30 192.168.200.132 : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
31 192.168.200.133 : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

提示:
  我们可以看到测试的roles在远程上已经调用配置文件,进行加载

ansible-playbook-roles基本使用的更多相关文章

  1. Ansible playbook roles

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

  2. Ansible Playbook Roles and Include Statements

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

  3. ansible playbook最佳实践

    本篇主要是根据官方翻译而来,从而使简单的翻译,并没有相关的实验步骤,以后文章会补充为实验步骤,此篇主要是相关理论的说明,可以称之为中文手册之一,具体内容如下: Ansible playbooks最佳实 ...

  4. Ansible playbook 批量修改服务器密码 先普通后root用户

    fsckzy   Ansible playbook 批量修改服务器密码 客户的需求:修改所有服务器密码,密码规则为Rfv5%+主机名后3位 背景:服务器有CentOS6.7,SuSE9.10.11,r ...

  5. Ansible playbook基础组件介绍

    本节内容: ansible playbook介绍 ansible playbook基础组件 playbook中使用变量 一.ansible playbook介绍 playbook是由一个或多个“pla ...

  6. ansible入门四(Ansible playbook基础组件介绍)

    本节内容: ansible playbook介绍 ansible playbook基础组件 playbook中使用变量 一.ansible playbook介绍 playbook是由一个或多个“pla ...

  7. ansible playbook模式及语法

    一.什么是playbook及其组成 什么是playbook playbook 翻译过来就是"剧本" playbook的组成 play:定义的是主机的角色 task:定义的是具体执行 ...

  8. ansible - playbook(剧组)

    目录 ansible - playbook(剧组) 常用命令 五种传参方式 常用元素详解 tags handlers template when 循环 嵌套循环 ansible - playbook( ...

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

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

  10. Ansible:roles初始化系统

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

随机推荐

  1. 笔记 | 第一个量子算法:Deutsch-Jozsa算法,非常好懂!

    <关于胡小兔的博客又诈尸了这件事> 信息物理真是难啊!上节课讲了量子计算的最基础的概念和Deutsch-Jozsa算法,我看了好几天才看懂-- 等考完试估计我就忘了,所以今天先写个博客给未 ...

  2. 一位北漂12年IT工程师的年终总结

    Hi,我叫李振良,来自河南周口农村的一个普通家庭,如今来北京已经12年了,我是那种没有大学背景.没有聪明头脑.没有人脉的奋斗青年,但我又是那种不甘于现状,一直想做最好的那个人! 2019年已悄然离去, ...

  3. 跟着尚硅谷系统学习Docker-【day08】

    day08-20200723   p32.docker 安装redis   [ docker pull redis] [docker run -p 6397:6397 -v /tmp/mydocker ...

  4. URL 传参转义 (特殊符号转义)

    问题: url参数中 存在+,空格,/,?,%,#,&,=等特殊符号的时候,可能在服务器端无法获得正确的参数值,如何是好? 解决办法:将这些字符转化成服务器可以识别的字符,对应关系如下:URL ...

  5. 【原创】解BUG-xenomai内核与linux内核时间子系统之间存在漂移

    版权声明:本文为本文为博主原创文章,转载请注明出处.如有问题,欢迎指正.博客地址:https://www.cnblogs.com/wsg1100/ 一.问题起源 何为漂移?举个例子两颗32.768kH ...

  6. 解决spark streaming集成kafka时只能读topic的其中一个分区数据的问题

    1. 问题描述 我创建了一个名称为myTest的topic,该topic有三个分区,在我的应用中spark streaming以direct方式连接kakfa,但是发现只能消费一个分区的数据,多次更换 ...

  7. python温度转换代码分析

    将用户输入的温度信息保存在TempStr变量中 if分支条件,判断TempStr类型是否在f及F列表之中 如果用户输入的在f及F列表之中,则用户输入的是一个华氏温度值,对华氏温度进行摄氏温度的转换,e ...

  8. 基于Springboot+Mybatis+Element UI开发的钢贸供应链系统

    小蓝钢贸云供应链系统以销售.采购.库存及财务一体化的设计理念,从供应商到客户的销售流程,实现订单.货物.资金的全面管控,并能对成本进行准确的跟踪与分析,为销售决策提供依据. 基于SpringBoot2 ...

  9. JVM学习(五)对象的引用类型

    一.引言 前面我们学习了JVM的垃圾回收机制,我们知道了垃圾回收是JVM的自发行为:虽然我们可以通过System.gc() 或Runtime.getRuntime().gc()进行显式调用垃圾回收 , ...

  10. Java Web学习(一)Web基础

    文章更新时间:2020/07/24 一.基本概念 web资源 Internet上供外界访问的Web资源分为两种: 静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变. 动态w ...