Ansible之Playbook

这篇具有很好参考价值的文章主要介绍了Ansible之Playbook。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.简介

Playbook 也通常被⼤家翻译成剧本。
可以认为它是Ansible ⾃定义的⼀⻔语⾔(可以将 Playbook ⽐作Linux 中的 shell,⽽ Ansible 中的 Module 可以⽐作为 Linux 中的各种命令。)

2.Play的定义

PlayBook遵循YAML 的语法格式。
由于Playbook 是由⼀个或者多个Play组成,那么如果我们熟悉Play的写法,就⾃然掌握了我们这章的PlayBook。
那如何定义⼀个Play呢 ?

  1. 每⼀个Play 都是以短横杠开始的
  2. 每⼀个Play 都是⼀个YAML 字典格式

根据规则,我们可以先构建出一个假想的Play:

---
- key1: value1
  key2: value2
  key3: value3
...

由于⼀个Playbook 是由⼀个或者多个Play构成, 那么⼀个含有多个Play的Playbook 结构上应该是如下的样⼦

---
# ⼀个含有3个Play 的伪PlayBook构成
- key1: value1
  key2: value2
  key3: value3
- key4: value1
  key5: value2
  key6: value3
- key1: value1
  key2: value2
  key3: value3
...
3.Play属性

以上⼀⼩节中的Play为基础, Play中的每⼀个key,⽐如 key1, key2 等;这些key在PlayBook中被定义为Play的属性。
这些属性都具有特殊的意义,我们不能随意的⾃定义Play 的属性。
接下来就来看看 Ansible 本身都⽀持哪些Play属性。
常⽤属性 :

  • name 属性, 每个play的名字
  • hosts 属性, 每个play 涉及的被管理服务器,同ad-hoc 中的资产选择器
  • tasks 属性, 每个play 中具体要完成的任务,以列表的形式表达
  • become 属性,如果需要提权,则加上become 相关属性
  • become_user 属性, 若提权的话,提权到哪个⽤户上
  • remote_user属性,指定连接到远程节点的⽤户,就是在远程服务器上执⾏具体操作的⽤户。若不指定,则默认使⽤当前执⾏ ansible Playbook 的⽤户
4.一个完整剧本

根据上⼀⼩节中介绍的真实的属性,⼀个含有⼀个Play 的Playbook 应该是如下的样⼦

---
- name: the first play example
  hosts: webservers
  remote_user: root
  tasks:
    - name: install nginx package
      yum: name=nginx state=present
    - name: copy nginx.conf to remote server
      copy: src=nginx.conf dest=/etc/nginx/nginx.conf
    - name: start nginx server
      service:
        name: nginx
        enabled: true
        state: started
5.tasks属性中任务的多种写法
# 以启动 nginx 服务,并增加开机启动为例
# ⼀⾏的形式:
service: name=nginx enabled=true state=started

# 多⾏的形式:
service: name=nginx
         enabled=true
         state=started

# 多⾏写成字典的形式:
service:
  name: nginx
  enabled: true
  state: started
6.具有多个Play的Playbook
---
- name: manage web servers
  hosts: webservers
  remote_user: root
  tasks:
  - name: install nginx package
    yum: name=nginx state=present
  - name: copy nginx.conf to remote server
    copy: src=nginx.conf dest=/etc/nginx/nginx.conf
  - name: start nginx server
    service:
      name: nginx
      enabled: true
      state: started
- name: manager db servers
  hosts: db_servers
  tasks:
   - name: update database confg
     copy: src=my.cnf dest=/etc/my.cnf
7.如何对Playbook进行语法校验

下⾯校验的⽅法,只能校验PlayBook是否正确,⽽不能校验YAML⽂件是否语法正确。

ansible-playbook -i hosts myplaybook.yml --syntax -check

因为PlayBook 属于YAML 格式, 我们同样可以使⽤检查YAML的语法格式的⽅法进⾏检查PlayBook的语法正确性。

python -c 'import yaml,sys; 
print yaml.safe_load(sys.stdin)' < myplaybook.yml
8.如何运行Playbook
ansible-playbook -i hosts myplaybook.yml
9.如何单步跟从调试PlayBook
#执⾏Task中的任务,需要⼿动确认是否往下执⾏。
ansible-playbook -i hosts myplaybook.yml --step
10.如何测试运行PlayBook

测试运⾏就是会执⾏完整个PlayBook ,但是所有Task中的⾏为都不会在远程服务器上执⾏,所有执⾏都是模拟⾏为。文章来源地址https://www.toymoban.com/news/detail-502429.html

ansible-playbook -i hosts myplaybook.yml -C
#-C 为⼤写的字⺟ C

到了这里,关于Ansible之Playbook的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ansible Playbook剧本配置文件

    目录 一、执行文件 修改hosts文件 Playbook的核心元素包含: 用法 实验案例 1.语法检查 2.预测试 3.列出主机 4.列出任务 5.列出标签 6.进行测试 7.测试查看 二、触发器 handlers触发器的实验实例如下 预执行 执行 查看结果 三、角色 /etc/ansible/roles/为角色集合,该目录下有自定义的各

    2024年02月16日
    浏览(42)
  • Ansible的脚本 --- playbook 剧本

    目录 playbook的简介 什么是playbook playbook组成 应用实例 Templates 模块 tags 模块 Roles 模块  Ansible Playbook 是设定自动化任务的一种蓝图,可在无需人工干预或有限干预的前提下执行复杂的 IT 操作。Ansible Playbook 对一组或一类共同构成 Ansible 清单的主机执行。         Ansible Playbo

    2024年02月21日
    浏览(43)
  • 【Ansible 的脚本 --- playbook 剧本】

    playbooks 本身由以下各部分组成 将yum安装的nginx里面的配置文件进行修改,后传输到对应的远程主机 解压wordpress压缩文件,放入到对应的html网页目录底下 进行传输到远程主机里的网页页面目录上 使用浏览器进行访问测试

    2024年02月14日
    浏览(32)
  • Ansible的脚本-playbook 剧本

       1.playbook介绍         playbook是ansible用于配置,部署,和管理被控节点的剧本。通过playbook的详细描述,执行其中的tasks,可以让远端主机达到预期的状态。playbook是由一个或多个”play”组成的列表。 当对一台机器做环境初始化的时候往往需要不止做一件事情,这时使用

    2024年02月02日
    浏览(35)
  • Ansible 的脚本-playbook 剧本

    1.playbooks 本身由以下各部分组成 (1)Tasks:任务,即通过 task 调用 ansible 的模板将多个操作组织在一个 playbook 中运行 (2)Variables:变量 (3)Templates:模板 (4)Handlers:处理器,当changed状态条件满足时,(notify)触发执行的操作 (5)Roles:角色 2.示例 3.定义、引用变量

    2024年02月06日
    浏览(39)
  • Ansible之playbook剧本编写

    playbook是 一个不同于使用Ansible命令行执行方式的模式,其功能更强大灵活。简单来说,playbook是一个非常简单的配置管理和多主机部署系统,不同于任何已经存在的模式,可作为一个适合部署复杂应用程序的基础。Playbook可以定制配置,可以按照指定的操作步骤有序执行,支

    2024年02月14日
    浏览(36)
  • Ansible 的脚本 --- playbook 剧本

    playbook是 一个不同于使用Ansible命令行执行方式的模式,其功能更强大灵活。 简单来说,playbook是一个非常简单的配置管理和多主机部署系统, 不同于任何已经存在的模式,可作为一个适合部署复杂应用程序的基础。 Playbook可以定制配置,可以按照指定的操作步骤有序执行,

    2024年02月10日
    浏览(37)
  • 【Linux】Ansible 脚本 playbook 剧本

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 playbooks 本身由以下各部分组成 (1)Tasks:任务,即通过 task 调用 ansible 的模板将多个操作组织在一个 playbook 中运行 (2)Variables:变量 (3)Templates:模板 (4)Handlers:处理器,当changed状态条件满足时

    2024年02月14日
    浏览(37)
  • 【Ansible】Ansible自动化运维工具之playbook剧本

      简单来说,playbooks是一种简单的配置管理系统与多机器部署系统的基础。与现有的其他系统有不同之处,且非常适合复杂应用的部署。   Playbooks 可用于声明配置,更强大的地方在于,playbooks可以编排有序的去执行过程,甚至做到多组机器间来回有序的执行特别指定的

    2024年02月14日
    浏览(40)
  • 【ansible】自动化运维ansible之playbook剧本编写与运行

    目录 一、ansible剧本playbook的组成 二、palybook的基础应用: 实操1:通过palybooks完成nginx的安装 第一种:通过yum安装nginx 第二种:通过编译安装nginx 实操2:playbook定义、引用变量​​​​​​​ 实操3:通过playbook完成普通账户权限提权为root用户 实操4:通过when条件判断指定主机

    2024年02月20日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包