Ansible Playbook概览
Ansible playbook 执行需要三步路执行:
1.编写playbook
2.定义主机清单文件
3.设置运行环境,写入配置文件
1.编写playbook
Playbook使用YAML语法格式进行编写,这种格式的特点是使用空格缩进来体现语法,,虽然对空格数量没有严格的要求,不过
有几个基本规则要遵守:
- 处于层次结构中同一级别的数据元素必须具有相同的缩进量
- 如果项目属于项目的子项,其缩进量必须大于父项
- 也可以通过添加空行来提高可读性(非强制)
- 只有空格字符可用于缩进,不允许使用制表符
在 $HOME/.vimrc 文件中添加下面这行后,如果 vim 检测到您在编辑 YAML文件,它将在 Tab 键按下时执行一个双空格缩进,自动缩进后续行并
且将制表符展开成空格
autocmd FileType yaml setlocal ai ts=2 sw=2 et
# sh 结尾 拓展脚本知识
autocmd BufNewFile *.sh exec ":call SetTitle()"
func SetTitle()
if expand("%:e") =='sh'
call setline(1,"#!/bin/bash")
call setline(2,"#")
call setline(3,"###################################################")
call setline(4,"#Author: Xiong")
call setline(5,"#DATE: ".strftime("%Y-%m-%d"))
call setline(6,"#Liscense: GPL")
call setline(7,"#Version: V0.1")
call setline(8,"#Copyright(c): ".strftime("%Y")." All rights reserved")
call setline(9,"###################################################")
cal setline(10,"")
endif
endfunc
Playbook由多个play组成,一个play有相关联的一系列任务组成,任务有task关键词定义,task中要执行的任务通过调用各种模
块来完成,示例:
---
- name: Install file # playbook名字
hosts: workstations # 待执行的主机或主机组名
vars:
content: "Hello world!"
tasks:
- name: "Copy File to other workstations"
copy: # 任务所需要使用的模块
title: "{ content }"
dest: /tmp/sample.txt
- name: Hello # 第二个playbook 名字
hosts: OSE
roles:
- hello # 角色名
2.定义主机清单文件
清单文件是个文本文件,用于定义要被控制的主机,最后可以在playbook引用这个文件,以控制一批指定的主机受控主机,可以写ip地址,可以写主机名,也可以进行分组。示例
[workstation]
workstation.com
[nfs]
services.com
[master]
master.com
[node]
node.com
[etcd]
etcd.com
[K8S]
master
etcd
node
nfs
3. 设定运行环境
在前两步完成后,设置ansible运行环境,定义相关配置文件,示例:
[defaults]
remote_user = admin
inventory = /ansible/playbook/inventory # 定义主机清单文件目录地址
roles_path= /home/admin/roles
log_path=/ansible/playbook/ansible.log
[privileg] # 定义在主机上执行特权的操作
become = yes
become_user = root
become_method= sudo
至此,前三步完成,可以执行ansible-playbook
运行playbook
playbook一般以普通用户执行,执行语法是 ansible-playbook <playbook-filename>
如果执行的时候需要指定清单文件,可以用 -i 选项指定,如:ansible-playbook -i <inventory-file> <playbookfilename>
Ansible Playbook概览的更多相关文章
- Ansible playbook API 开发 调用测试
Ansible是Agentless的轻量级批量配置管理工具,由于出现的比较晚(13年)基于Ansible进行开发的相关文档较少,因此,这里通过一些小的实验,结合现有资料以及源码,探索一下Ansible ...
- ansible playbook实践(四)-如何调试写好的playbook文件
有时,我们写了一个长长,功能很强悍的yaml文件,但是,我们有可能会担心,写的yaml文件是否正确,是否有漏洞危机,毕竟是要修改线上的机器,那么,有可能我们可以从以下几个检查维度来进行,确保在大规模应 ...
- ansible playbook批量改ssh配置文件,远程用户Permission denied
最近手里的数百台服务器需要改/etc/ssh/sshd_config的参数,禁止root直接登陆,也就是说 [root@t0 ~]# cat /etc/ssh/sshd_config | grep R ...
- ansible笔记(11):初识ansible playbook(二)
ansible笔记():初识ansible playbook(二) 有前文作为基础,如下示例是非常容易理解的: --- - hosts: test211 remote_user: root tasks ...
- ansible笔记(10):初识ansible playbook
ansible笔记():初识ansible playbook 假设,我们想要在test70主机上安装nginx并启动,我们可以在ansible主机中执行如下3条命令 ansible test70 -m ...
- Ansible playbook 批量修改服务器密码 先普通后root用户
fsckzy Ansible playbook 批量修改服务器密码 客户的需求:修改所有服务器密码,密码规则为Rfv5%+主机名后3位 背景:服务器有CentOS6.7,SuSE9.10.11,r ...
- 写Ansible playbook添加zabbix被监控的对象
本主题达到的效果是能通过编写Ansible Playbook,创建zabbix主机组,把被监控的对象加入到zabbix监控系统中,同时链接到对象的模板. 1.准备工作 在zabbix服务器上面,我们需 ...
- Ansible playbook基础组件介绍
本节内容: ansible playbook介绍 ansible playbook基础组件 playbook中使用变量 一.ansible playbook介绍 playbook是由一个或多个“pla ...
- ansible playbook基本操作
一.ansible playbook简单使用 相当于是把模块写入到配置文件里面 vim /etc/ansible/test.yml //写入如下内容: --- - hosts: 127.0.0.1 r ...
随机推荐
- 解决Mapper.xml文件中sql标签第一个字段报错
在文件标头的http后边补上www 下边代码仅第4行有变动 原文件: <?xml version="1.0" encoding="UTF-8"?> ...
- 08. 树莓派安装MySQL
1. 配置国内源(如果之前设置过可跳过步骤1~步骤2) vim /etc/apt/sources.list.d/raspi.list 2. 添加源 ,文档内原先的内容在开头加#号注释掉,加上下面这个 ...
- [AcWing 28] 在O(1)时间删除链表结点
点击查看代码 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * L ...
- 不懂 Zookeeper?来看看这篇文章
开源Linux 长按二维码加关注~ 高并发分布式开发技术体系已然非常的庞大,从国内互联网企业使用情况,可发现RPC.Dubbo.ZK是最基础的技能要求.关于Zookeeper你是不是还停留在Dubbo ...
- [源码解析] TensorFlow 分布式之 ParameterServerStrategy V2
[源码解析] TensorFlow 分布式之 ParameterServerStrategy V2 目录 [源码解析] TensorFlow 分布式之 ParameterServerStrategy ...
- 三、单redis升级redis集群+哨兵
针对假如已经是安装了redis,只是是单部署,需要把他切换成redis集群+哨兵模式,我因为偷懒,就写了个脚本来执行,各位看官,请品~你品~你细品~ 首先准备个升级包,放到任意路径,内容如下: 第一个 ...
- drools规则属性(rule attributes)的使用
一.介绍 规则属性是您可以添加到业务规则以修改规则行为的附加规范. 在 DRL 文件中,您通常在规则条件和操作的上方定义规则属性,多个属性位于单独的行中,格式如下: rule "rule_n ...
- vscode编写的程序中文乱码怎么办?
(以下教程在源码文件的编码是utf-8的基础上进行!) (dev的源码文件是GBK编码,或者是GB2312?我现在好久没用dev,关于dev的信息可能有错误. 如果拿dev编写的代码用vscode打开 ...
- linux篇-linux mysql5.6.27源码安装和错误解决
centos mysql5.6.27 1编译安装 先进入到文件放置的路径下 创建一个个文件 #mkdir–p /data/mysql/mysql #mkdir–p /data/mysql/mysqld ...
- while和for循环的补充与数据类型的内置方法(int, float, str)
目录 while与for循环的补充 while + else 死循环 while的嵌套 for补充 range函数 break与continue与else for循环的嵌套 数据类型的内置方法 int ...