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. 2020JavaWeb实现文件下载

    Servlet实现文件下载: package com.demo.test; import org.apache.commons.io.IOUtils; import javax.servlet.Ser ...

  2. 剑指 Offer 47. 礼物的最大价值

    题目描述 在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0).你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格.直到到达棋盘的右下角.给定一个棋盘及 ...

  3. 无法从NVIDA官网下载安装CUDA安装包?NVIDA官网怎么了?

    最近几天由于不知名的原因,导致很多人无法从官网下载NVIDA的CUDA安装包,下载时,浏览器提示此文件可能危害你的计算机,选择保留下载下来也只是一个42字节的exe文件 双击进行安装又出现以下问题: ...

  4. Agumater 增加基本数据上传下载能力

  5. 使用SVG symbols建立图标系统

    在实现Web项目的图标系统时,SVG是一个不错的选择.虽然使用SVG创建图标系统有多种方式.在这篇文章中,我们只看其中一种:SVG symbols.这项技术基于两个元素的使用:<symbol&g ...

  6. Python3 学习笔记之 数据类型

  7. MIPS 架构流水线处理器

    该项目系笔者大二时计算机组成课的课程设计,源代码及完整文档请移步 Github 仓库.

  8. js实现隔行变色

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. cnblog维护

    title: 博客归纳 blog: CSDN data: Java学习路线及视频 2019 12/31 时间管理 2020 1/22 Git是什么? 1/23 Git安装--Windows 3/24 ...

  10. Redis中有序列表(ZSet)相关命令

    redis语序集合和集合set是一样内部value为string类型的集合,有序不允许重复元素 但是,zset的每个元素有一个double类型的分数(score).redis正是靠这个分数对元素从小到 ...