Ansible自动化运维——ansible核心组件playbook

Ansible核心功能点就在于playbook,Ansible主要的工作都是在于配置管理,它在实际的工作中会大量编写和使用剧本。

如果说ansible 模块 是你车间里的工具,那么playbooks 是你的说明书/使用手册,并且资源清单上的主机是你的原材料。

在ansible 上使用Playbooks是一种完全不同于adhoc的任务执行模式,并且特别强大。

简单地说,playbooks是一个非常简单的配置管理和多机器部署系统的基础,以及非常适合部署复杂应用程序的系统。

Playbooks可以对任务进行编排,就像我们要安装一个程序,写个安装shell脚本一样,在哪一步复制配置文件,最后一步启动服务。

虽然/usr/bin/ansible 可以运行一些临时任务,但是针对复杂的配置,并且可以将配置标准化,这个时候就需要Playbooks了。

【Anisble剧本】
ansible软件playbook编写需要遵循YAML语法

playbook安装nginx
1.批量卸载所有的nginx

[root@m01 ~]# ansible chaoge -m yum -a "name=nginx state=absent"
[root@m01 ~]# ansible chaoge -m shell -a "rpm -qa nginx warn=false"
192.168.178.110 | CHANGED | rc=0 >>

192.168.178.111 | CHANGED | rc=0 >>

2.查看一个YAML文件,请严格注意
语法的对齐,不得多一个少一个空格
输入法保证英文

[root@m01 scripts]# cat nginx.yaml -n
     1    # install nginx yaml ,by chaoge
     2    - hosts: all
     3      tasks:
     4          - name: Install nginx Package
     5            yum: name=nginx state=present
     6          - name: Copy Nginx.conf
     7            copy: src=./nginx.conf dest=/etc/nginx/nginx.conf mode=0644

3.解释如上的playbook代码,按行解释:

1.表示注释信息,可以用#,也可以用 — 三个短横线
2.定义playbook管理的目标主机,all表示所有的主机,也可以写 主机组名
3.定义playbok所有的任务集合信息,比如该文件,定义了2个任务 ,安装nginx,拷贝nginx配置文件
4.定义了任务的名词,自定义的帮助信息
5.定义任务的具体操作,比如这里用yum模块实现nginx的安装
6.
7.第六、第七两行作用是使用copy模块,把本地当前的nginx.conf配置文件,分发给其他所有客户端机器,且授权

playbook最基本的两个部分

在这里插入图片描述
hosts定义剧本管理的主机信息

#方式一:定义所管理的主机IP地址

  • hosts: 192.168.178.111
    tasks:
    动作…

#方式二:定义所管理主机的名字

  • hosts: backup01
    tasks:
    动作…

#方式三:定义管理主机

  • hosts: 192.168.178.111, rsync01
    tasks:
    动作…

#方式四:管理所有主机

  • hosts: all
    tasks:
    动作…

task定义被管理的主机需要执行的任务

#方式一:采用变量格式设置任务

tasks:

  • name: make sure apache is running
    service: name=https state=running
    #当传入的参数列表过长时,可以将其分割到多行
    tasks:
  • name: copy ansible inventory(清单) file to client
    copy: src=/etc/ansible/hosts dest=/etc/ansible/hosts
    owner=root group=root mode=0644

#方式二:采用字典格式设置多任务

tasks:

  • name: copy ansible inventory file to client
    copy:
    src: /etc/ansible/hosts
    dest: /etc/ansible/hosts
    owner: root
    group: root
    mode: 0644

yaml语法解释
在学习saltstack过程中,第一要点就是States编写技巧,简称SLS文件。这个文件遵循YAML语法。

json xml yaml 数据序列化格式
yaml容易被解析,应用于配置文件

salt的配置文件是yaml配置文件,不能用tab
saltstack,k8s,ansible都用的yaml格式配置文件

#语法规则
大小写敏感
使用缩进表示层级关系
缩进时禁止tab键,只能空格
缩进的空格数不重要,相同层级的元素左侧对其即可
# 表示注释行

yaml支持的数据结构
对象: 键值对,也称作映射 mapping 哈希hashes 字典 dict 冒号表示 key: value key冒号后必须有
数组: 一组按次序排列的值,又称为序列sequence 列表list 短横线 - list1
纯量: 单个不可再分的值

对象:键值对 yaml
first_key:
second_key:second_value

python
{
‘first_key’:{
‘second_key’:‘second_value’,
}
}

playbook执行命令
加载剧本中的功能,可以使用ansible-playbook命令

ansible-playboook nginx.yaml

查看剧本执行详细输出

ansible-playbook nginx.yml --verbose

查看剧本执行影响的主机列表

ansible-playbook nginx.yml --list-hosts

执行playbook指定加载的主机清单文件

ansible-playbook nginx.yml -i /etc/ansible/hosts

执行playbook时检查剧本语法

ansible-playbook nginx.yml --syntax-check

调试playbook时检查剧本语法

ansible-playbook nginx.yml --syntax-check

调试playbook任务,模拟执行,不影响主机配置

ansible-playbook nginx.yml -C

playbook的输出信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值