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概览的更多相关文章

  1. Ansible playbook API 开发 调用测试

    Ansible是Agentless的轻量级批量配置管理工具,由于出现的比较晚(13年)基于Ansible进行开发的相关文档较少,因此,这里通过一些小的实验,结合现有资料以及源码,探索一下Ansible ...

  2. ansible playbook实践(四)-如何调试写好的playbook文件

    有时,我们写了一个长长,功能很强悍的yaml文件,但是,我们有可能会担心,写的yaml文件是否正确,是否有漏洞危机,毕竟是要修改线上的机器,那么,有可能我们可以从以下几个检查维度来进行,确保在大规模应 ...

  3. ansible playbook批量改ssh配置文件,远程用户Permission denied

    最近手里的数百台服务器需要改/etc/ssh/sshd_config的参数,禁止root直接登陆,也就是说 [root@t0 ~]# cat /etc/ssh/sshd_config | grep R ...

  4. ansible笔记(11):初识ansible playbook(二)

    ansible笔记():初识ansible playbook(二) 有前文作为基础,如下示例是非常容易理解的: --- - hosts: test211 remote_user: root tasks ...

  5. ansible笔记(10):初识ansible playbook

    ansible笔记():初识ansible playbook 假设,我们想要在test70主机上安装nginx并启动,我们可以在ansible主机中执行如下3条命令 ansible test70 -m ...

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

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

  7. 写Ansible playbook添加zabbix被监控的对象

    本主题达到的效果是能通过编写Ansible Playbook,创建zabbix主机组,把被监控的对象加入到zabbix监控系统中,同时链接到对象的模板. 1.准备工作 在zabbix服务器上面,我们需 ...

  8. Ansible playbook基础组件介绍

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

  9. ansible playbook基本操作

    一.ansible playbook简单使用 相当于是把模块写入到配置文件里面 vim /etc/ansible/test.yml //写入如下内容: --- - hosts: 127.0.0.1 r ...

随机推荐

  1. Jx.Cms开发笔记(四)-改造Card组件

    在Blazor 组件库 BootstrapBlazor 中Card组件介绍中我们说过,如果我们使用了Card组件的IsCollapsible属性设置了可伸缩的话,就只能使用Text属性来设置标题文本, ...

  2. petite-vue源码剖析-沙箱模型

    在解析v-if和v-for等指令时我们会看到通过evaluate执行指令值中的JavaScript表达式,而且能够读取当前作用域上的属性.而evaluate的实现如下: const evalCache ...

  3. python学习-Day38-HTTP

    目录 HTTP简介 可以充当客户端的有哪些 HTTP 工作原理 HTTP协议 HTTP协议四大特性 数据格式 请求格式: 响应格式: HTTP 请求方法 HTTP 状态码分类 响应分为五类: HTTP ...

  4. Git (常用命令)

    某程序猿退休后决定练习书法,于是花重金买下文房四宝.某日,饭后突生雅兴,一番磨墨拟纸 并点上上好檀香.定神片刻,泼墨挥毫,郑重地写下一行:Hello World 斯~ 有被冷到吗哈哈哈 Git常用命令 ...

  5. vue - vue基础/vue核心内容(终结篇)

    今天是vue基础.vue核心内容第三天,也是最后一天,后面开始进入组件化学习,整个基础内容以生命周期的结束而结束,不得不说,张天禹把这节课讲活了,开始觉得vue是一个有生命的东西,包括前面所说的很多脏 ...

  6. 实体linux服务器-由自动ip改为固定ip后,无法上网问题--配置问题解法

    新入公司,研发产业为零,开始搞. linux之前是自动获取ip地址的,网上搜索的帖子,耍流氓的居多,不能上网的原因很多,我这个是配置不对,看是否与你的一样. 1.首先看下当前电脑网卡,根据地址可以判断 ...

  7. deepin安装jdk配置环境

    下载一个jdk压缩包https://download.oracle.com/java/18/latest/jdk-18_linux-x64_bin.tar.gz 这个包,不用安装,下下来,直接解压,然 ...

  8. uniapp中利用uni.$emit()和uni.$on()进行页面和tabbar页面传值(页面通讯)

    tabbar页面 <script> export default { data() { return { list: [] , }; }, onLoad() { // 监听事件 uni.$ ...

  9. 有了 Promise 和 then,为什么还要使用 async?

    有了 Promise 和 then,为什么还要使用 async? 本文写于 2020 年 5 月 13 日 最近代码写着写着,我突然意识到一个问题--我们既然已经有了 Promise 和 then,为 ...

  10. 简易版 vue实现

    Vue-mini 完整的Demo示例:git@github.com:xsk-walter/Vue-mini.git 一.Vue实例 构造函数: $option\ $el\ $data 判断是否存在 通 ...