ansible自动化运维学习(3)——编写ansible的playbook文件

本文深入介绍了如何使用Ansible的Playbook进行自动化运维,包括Playbook的基本概念、语法要点,以及逐步演示如何编写Playbook来安装服务、修改配置文件、配置负载均衡等任务。此外,还展示了如何将新服务器自动加入负载均衡集群。
摘要由CSDN通过智能技术生成

本章对ansible的palybook做了讲解,涉及了playbook的语法、变量、模板、判断、循环等,了解了如何编写playbook文件。

1.playbook简介

Playbook与ad-hoc相比,是一种完全不同的运用
playbook是一种简单的配置管理系统与多机器部署系统的基础,且非常适合于复杂应用的部署
playbook中可以编排有序的执行过程,甚至于做到在多组机器间
来回有序的执行特别指定的步骤,并且可以同步或异步的发起任务
使用playbook可以方便的重用这些代码,可以移植到不同的机器上面
playbook才是ansible真正强大之处

2.playbook语法

playbook由YMAL语言编写,以下为playbook常用到的YMAL格式:
(1)文件的第一行应该以"—"三个连字符开始,表明YMAL文件的开始。
(2)在同一行中,#之后的内容表示注释,类似于shell,python和ruby。
(3)YMAL中的列表元素以”-”开头然后紧跟着一个空格,同一个列表中的元素应该保持相同的缩进:
(4)一个字典是由一个简单的 键: 值 的形式组成(这个冒号后面必须是一个空格),字典也可以使用缩进形式来表示

比如
在这里插入图片描述
主机与用户

    ---
    - hosts: server2       #指定主机组,可以是一个或多个组,逗号分隔。
      remote_user: root                #指定远程主机执行的用户名
    ---
    - hosts: webservers
      remote_user: root            
      become: yes                		#切换用户运行
      become_user: mysql          	#指定sudo用户为mysql

Tasks 列表
Play的主体部分是task列表,task列表中的各任务按次序逐个在hosts中指定的主机上执行,
即在所有主机上完成第一个任务后再开始第二个任务。如果一个host执行task失败,整个tasks都会回滚。
每一个task必须有一个名称name,这样在运行playbook时,从其输出的任务执行信息中可以很好的辨别出是属于哪一个task的。

tasks:
    - name: install apache		#定义任务名

执行playbook

# ansible-playbook apache.yml 直接执行
# ansible-playbook apache.yml --syntax-check    #检查yaml文件的语法是否正确
# ansible-playbook apache.yml --list-task       #检查tasks任务
# ansible-playbook apache.yml --list-hosts      #检查生效的主机
# ansible-playbook a.yml --start-at-task="启动apache服务"     #指定从某个task开始运行

3.编写playbook实现自动安装服务

(1)由于yml文件语法的要求,我们先编写一个特定的vim,一个tab等于两个空格
在这里插入图片描述
在这里插入图片描述
(2)开始编写yml文件
在这里插入图片描述
给prod组里面的主机server3安装httpd服务并且开启服务
在这里插入图片描述
在这里插入图片描述
(3)检测一下语法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(4)开始执行
在这里插入图片描述
(5)在server3上查看
在这里插入图片描述

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值