Ansible脚本— playbook剧本(基础篇)


一、playbook 概述

1.1 Ansible脚本—playbook剧本

1、playbook由YMAL语言编写。YMAL格式是类似于JSON的文件格式,便于人理解和阅读,同时便于书写。

2、通过tasks调用ansible的模板将多个play组织在一个playbook中运行。

1.2 playbook的核心组件

剧本 playbook
场地 主机组:hosts
演员 授权执行的用户:remote_user
故事情节 执行的任务:tasks(调用的是各种ansible模块)

1.3 playbook的组成结构

playbooks本身由以下各部分组成

(1)Tasks∶任务,即调用模块完成的某操作;

(2)Variables∶变量;

(3)Templates; 模板;

(4)Handlers:处理器,当某条件满足时,触发执行的操作;

ansible通过不同的模块实现相应的管理,管理的方式通过定义的清单文件(hosts)所管理的主机包括认证的方式连接的端口等。

格式

ansible-playbook 【yaml文件名】

例如∶ ansible-playbook ping.yml

常用测试命令

ansible-play play.yaml --syntax-check                #检查语法
ansible-play play.yaml --list-task                   #检查task任务
ansible-play play.yaml --list-hosts                  #检查生效的主机
ansible-play play-yaml --start-at-task='ensure is runnning' #从某个任务开始执行

参数 (免密登录)∶
-k(-ask-pass)用来交互输入ssh密码
-K(-ask-become-pass) 用来交互输入sudo密码
-u 指定用户

hosts和users差别

hosts: webserver    指定主机组,可以是一个或多个组。
remote user: root   指定远程主机执行的用户名

二、playbook的语言: YAML

2.1 YAML介绍

YAML:是一种非标记语言。是用来写配置文件的语言,非常简洁和强大。
YAML语法和其他语言类似,也可以表达散列表、标量等数据结构。

结构通过空格来展示;序列里配置项通过 - 来代表; Map里键值用 : 来分隔;YAML的扩展名为 yaml

2.2 基本语法规则

  1. 大小写敏感
  2. 使用缩进表示层级关系
  3. 缩进时不允许使用Tab键,只允许使用空格。
  4. 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可

2.3 YAML支持的数据结构

  1. 对象:键值对的集合,又称为映射(mapping) /哈希(hashes) /字典(dictionary)

    例如:
    name:Example Developer
    变量名:对象名 属性

  2. 数组: 一组按次序排列的值,又称为序列(sequence) / 列表(list)

    例如:
    -Apple
    -Orange

  3. 纯量: 单个的,不可再分的值

    例如:
    number: 12.30
    sure: true
    变量名:数值

2.4 环境部署

设备:

管理端master: 192.168.40.11
被管理端node1:192.168.40.12
被管理端node2:192.168.40.13

1.重命名

[root@server1 ~]# hostnamectl set-hostname master
[root@server1 ~]# su
[root@client1 ~]# hostnamectl set-hostname node1
[root@client1 ~]# su
[root@client2 ~]# hostnamectl set-hostname node2
[root@client2 ~]# su

2.关闭防火墙
面向所有设备

systemctl stop firewalld
setenforce 0

3.ansible部署流程

详见

https://blog.csdn.net/Mr_XHC/article/details/112483379


三、playbook 剧本配置

写一个简单脚本(上手)

新手易错点:

‘-’ 不加
‘-’和‘:’后的空格不加
格式一定要对齐,不能随便缩进,缩进表示层级关系
tab键不要用,不识别

3.1 设置连通性脚本

[root@master ~]# vim aa.yaml 

- hosts: webserver
  remote_user: root
  tasks:
  - name: test connection
    ping:
    remote_user: root	#指定远程主机执行tasks的运行用户为root

[root@master ~]# ansible-playbook aa.yaml --syntax-check  检查语法
[root@master ~]# ansible-playbook 
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值