ansible-playbook-roles基本使用
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基本使用的更多相关文章
- Ansible playbook roles
1 概述 角色(roles):如果我们使用playbook写成一个文件,这个文件会很大,但是不方便组织,我们可以分组,把playbook根据功能,如handler,tasks等分门别类的放在在各自的 ...
- Ansible Playbook Roles and Include Statements
介绍 虽然可以在一个非常大的文件中编写一个playbook(您可能会以这种方式开始学习playbook),但最终您将需要重新使用文件并开始组织事情. 在基本级别,饱含任务的文件允许您将配置策略分解成较 ...
- ansible playbook最佳实践
本篇主要是根据官方翻译而来,从而使简单的翻译,并没有相关的实验步骤,以后文章会补充为实验步骤,此篇主要是相关理论的说明,可以称之为中文手册之一,具体内容如下: Ansible playbooks最佳实 ...
- Ansible playbook 批量修改服务器密码 先普通后root用户
fsckzy Ansible playbook 批量修改服务器密码 客户的需求:修改所有服务器密码,密码规则为Rfv5%+主机名后3位 背景:服务器有CentOS6.7,SuSE9.10.11,r ...
- Ansible playbook基础组件介绍
本节内容: ansible playbook介绍 ansible playbook基础组件 playbook中使用变量 一.ansible playbook介绍 playbook是由一个或多个“pla ...
- ansible入门四(Ansible playbook基础组件介绍)
本节内容: ansible playbook介绍 ansible playbook基础组件 playbook中使用变量 一.ansible playbook介绍 playbook是由一个或多个“pla ...
- ansible playbook模式及语法
一.什么是playbook及其组成 什么是playbook playbook 翻译过来就是"剧本" playbook的组成 play:定义的是主机的角色 task:定义的是具体执行 ...
- ansible - playbook(剧组)
目录 ansible - playbook(剧组) 常用命令 五种传参方式 常用元素详解 tags handlers template when 循环 嵌套循环 ansible - playbook( ...
- Ansible的roles标准化与Jenkins持续集成(三)
Ansible的roles标准化与Jenkins持续集成(三) 链接:https://pan.baidu.com/s/1A3Iq3gGkGS27L_Gt37_I0g 提取码:ncy2 复制这段内容后打 ...
- Ansible:roles初始化系统
简介 本文介绍ansible的roles,通过roles来实现系统的初始化,其相当于将ansible的playbook拆分.本文通过Jenkins,传参,调用playbook来初始化系统. Githu ...
随机推荐
- 文本三剑客之grep的用法
第1章 正则表达式 1.1 正则表达式的介绍 正则是用来过滤文件内容 为处理大量文本|字符串而定义的一套规则和方法. ...
- 剑指 Offer 56 - I. 数组中数字出现的次数
题目描述 一个整型数组 nums 里除两个数字之外,其他数字都出现了两次.请写程序找出这两个只出现一次的数字.要求时间复杂度是\(O(n)\),空间复杂度是\(O(1)\). 示例1: 输入:nums ...
- dya49:django:wsgrief&模板渲染Jinjia2&django的MTV/MVC框架&创建/启动一个django项目
目录 1.自定义web框架wsgiref版 2.自定义web框架wsgiref版-优化版 3.模板渲染JinJa2 4.MTV和MVC框架 5.django:下载安装&创建启动 自定义web框 ...
- node.js之koa安装
默认安装了node 1.cmd中工作目录下输入npm init:一路回车即可: 2.还是在此目录下输入npm i koa:我这里是安装的淘宝镜像即是输入cpm i koa. 3.打开编辑器在文件目录下 ...
- Mybatis和Mybatis-Plus时间范围查询,亲测有效
一.mysql 1.传入时间范围参数类型是字符串 <if test="startTime!=null and startTime.trim() neq ''"> and ...
- Linux实战(13):Centos8 同步时间
前言 以下操作是通过ntpdate命令实现同步 timedatectl set-timezone Asia/Shanghai # 设置时区 rpm -ivh http://mirrors.wlnmp. ...
- 云计算openstack共享组件——消息队列rabbitmq(3)
一.MQ 全称为 Message Queue, 消息队列( MQ ) 是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们. 消息传 ...
- spring mvc(3) DispatcherServlet
通过前面的例子,我们实现了spring mvc模式,那么在spring mvc模式下请求是如何被执行最终返回页面的呢? 从服务器收到请求开始,执行流程如下: 1.服务器接收请求,根据web.xml的配 ...
- 11.深入k8s:kubelet工作原理及源码分析
转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com 源码版本是1.19 kubelet信息量是很大的,通过我这一篇文章肯定是讲不全的,大家可 ...
- 深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)请自取
最近在读,附上网盘链接 复制这段内容后打开百度网盘手机App,操作更方便哦 链接:https://pan.baidu.com/s/1U6yFeZxz9uD6sSiu-Br06g 提取码:3Wt4