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. 广度优先搜索 BFS 学习笔记

    广度优先搜索 BFS 学习笔记 引入 广搜是图论中的基础算法之一,属于一种盲目搜寻方法. 广搜需要使用队列来实现,分以下几步: 将起点插入队尾: 取队首 \(u\),如果 $u\to v $ 有一条路 ...

  2. MKL库奇异值分解(LAPACKE_dgesvd)

    对任意一个\(m\times n\)的实矩阵,总可以按照SVD算法对其进行分解.即: \[A = U\Sigma V^T \] 其中\(U.V\)分别为\(m\times m.n\times n\)的 ...

  3. Kafka Kerberos 安全认证

    本主要介绍在 Kafka 中如何配置 Kerberos 认证,文中所使用到的软件版本:Java 1.8.0_261.Kafka_2.12-2.6.0.Kerberos 1.15.1. 1. Kerbe ...

  4. 【kubevirt】VirtualMachineInstanceReplicaSet(vmis)-扩缩容-弹性伸缩

    @ 目录 概述/理解 使用场景 创建vmis 扩缩容 弹性伸缩 方法1 方法2 概述/理解 VirtualMachineInstanceReplicaSet(vmis)确保指定数量的 VirtualM ...

  5. ES6片段

    那些可能会忘记或不知所以然的点: 1. 2. 3. 4. 5. 6. /* 函数调用会在内存形成一个"调用记录",又称调用帧,保存调用位置和内存变量等信息. 如果在函数 A 的内部 ...

  6. mybatis入门,CRUD,万能Map,模糊查询

    第一个Mybatis程序 核心配置文件mybatis-config.xml <?xml version="1.0" encoding="UTF-8" ?& ...

  7. 初始C语言作业一

    1.下面哪个不是C语言内置的数据类型:( ) A.char B.double C.struct Stu D.short 解析: C语言中内置类型包括 char //字符数据类型 short //短整型 ...

  8. 29. Divide Two Integers - LeetCode

    Question 29. Divide Two Integers Solution 题目大意:给定两个数字,求出它们的商,要求不能使用乘法.除法以及求余操作. 思路:说下用移位实现的方法 7/3=2, ...

  9. 每日一题20180401-Linux

    一.题目 1.1 在mysql命令行临时开启自动补全 1.2 通过shell脚本打印乘法口诀表 二.答案 2.1 # auto-rehash:读取表信息和列信息,可以在连上终端后开启tab补齐功能 # ...

  10. 152-技巧-Power Query 快速合并文件夹中表格之自定义函数 TableXlsxCsv

    152-技巧-Power Query 快速合并文件夹中表格之自定义函数 TableXlsxCsv 附件下载地址:https://jiaopengzi.com/2602.html 一.背景 在我们使用 ...