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. java之多态浅谈

    多态是同一个行为具有多个不同表现形式或形态的能力. 父类中定义的属性和方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为 多态现实意义理解: 现实事物经常会体现出多种形态,如学生,学生是人的 ...

  2. 基础Html重点——防健忘

    一.head标签重点 <head> <meta charset="utf-8"> <title>第二天课</title> <! ...

  3. Spring 框架(持续完善中)

    目录标题 一.Spring 框架 Spring 是什么? Spring Framework 核心概念 了解Spring 框架的架构图 二.Spring Framework 之 IOC 开发的步骤流程 ...

  4. 借助Java的JDBC自制“DBMS”管理操作数据库

    package jdbc; import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManager; imp ...

  5. 【极致丝滑】彻底摆脱编辑器插件,利用postcss灵活可控地转换px至vw

    背景 旧的rem适配方案(无论是直接使用rem,还是配合flexiblejs等lib库进行视口缩放)已经疲态尽显,且随着安卓高清屏的不断出现,同时data-dpr仍有进一步增加的可能性,rem显得并不 ...

  6. 【吴恩达课程使用】pip安装pandas失败-anaconda各种玄学T-T-从新开始搭建环境

    [吴恩达课程使用]安装pandas失败-从新开始搭建环境 在第五课第二周的任务2中,虚拟环境缺少pandas,sklearn依赖,因为用pip比较顺手,就直接使用pip安装,结果各种anaconda环 ...

  7. [Leetcode]Sql系列3

    题目1 产品数据表: Products +---------------+---------+ | Column Name | Type | +---------------+---------+ | ...

  8. [程序员代码面试指南]第9章-在两个长度相等的排序数组中找到第k小的数(二分)

    题目 给定两个有序数组arr1和arr2,再给定一个整数k,返回所有的数中第k小的数. 题解 利用题目"在两个长度相等的排序数组中找到第上中位数"的函数 分类讨论 k < 1 ...

  9. Linux基本目录机构

    Linux基本目录机构 1. 基本介绍 Linux的文件系统采用级层式子的树状目录结构 最上层是根目录"/" Linux世界里,一切皆文件 2. 目录用途 /bin: 是Binar ...

  10. Oracle学习(十一)聚合函数

    AVG() 求平均数 --查询某列的平均值 SELECT AVG(列) FROM 表 COUNT()查询条数 -- 查询所有记录的条数 select count(*) from 表; -- 查询对应列 ...