自动化运维之3——使用Ansible中的playbook

目录

一、playbook的功能

二、YAML(Yet Another Markup Language)

1、特点

2、语法简介

3、YAML中的列表

4、YAML中的字典

三、playbook执行命令

(1)执行语法

(2)常用参数

(3)测试

四、Playbook的核心组件

五、实验测试

实验一:向远程主机中部署apache

实验二:

实验三:

本章总结:


一、playbook的功能

playbook 是由一个或多个play组成的列表;Playbook 文件使用YAML来书写

二、YAML(Yet Another Markup Language)

YAML是一种表达资料序列的格式,类似XML

1、特点

可读性好
和脚本语言交互性好
易于实现
适用程序执行流梳理方式
可扩展性强

2、语法简介

在文件中用[---]开始(必写),在文件中用[...]结尾(可不写)
次行一般书写文件内容
缩进严格、大小写敏感
key/value可以多行书写也可一行书写,一行书写用,隔开
value可以是个字符串,也可是list
一个play需要包括name和tasks:name 是描述;tasks 是动作
一个name只能包含一个task

扩展名称yml或者yaml

3、YAML中的列表

[Linux,C++,Java,Python]
- Linux
- C++
- Java
- Python

4、YAML中的字典

字典作用:存放键值

写法一:
name:westos
age:12
jobs:linux

写法二:{name: "we stos", age: "12", jobs: "linux"}

三、playbook执行命令

小示例:

(1)执行语法

ansible-playbook xxx.yml  参数

(2)常用参数

(3)测试

<-C>:预执行

ansible-playbook test.yml -C        #预执行是否成功

<--syntax-check>:检测语法 

ansible-playbook test.yml --syntax-check

<--list-hosts>/<--list-tags>/<--list-tasks>:列出hosts、tag、tasks

ansible-playbook test.yml --list-hosts        #列出此剧本执行的主机
ansible-playbook test.yml --list-tags         #列出此剧本的tags    
ansible-playbook test.yml --list-tasks        #列出此剧本的执行的动作

<--limit>:指定执行的远程主机

ansible-playbook test.yml --limit 172.25.254.152 -C

注意:一般剧本中都有自动执行的主机,通过--limit命令可以手动指定要执行的远程主机。但是,指定的主机必须包含在剧本的列表中,否则将会报错。

<-v>显示详细信息

ansible-playbook test.yml -v

<-v>参数表示显示执行playbook时的详细信息,v越多,显示的信息越详细。

四、Playbook的核心组件

name可写可不写,建议使用,多用于说明
hosts受控主机列表
tasks任务,用于选择执行部分代码

五、实验测试

实验一:向远程主机中部署apache

  1 ---
  2 - name: Apache server                     #项目名称
  3   hosts: westos                           #要部署的主机
  4   tasks:                                  #任务
  5     - name: install apache                #子项目1
  6       dnf:                                #模块
  7         name: httpd                       #参数
  8         state: latest
  9         disable_gpg_check: yes
 10     - name: start apache                  #子项目2
 11       service:                            #模块
 12         name: http                        #参数
 13         state: started
 14         enabled: yes
 15 
 16     - name: firewalld setup               #子项目3
 17       firewalld:                          #模块
 18         service: httpd                    #参数
 19         permanent: yes
 20         state: enabled
 21         immediate: yes
 22         zone: public
 23 
 24     - name: create index                  #子项目4
 25       lineinfile:                         #模块
 26         path: /var/www/html/index.html    #参数
 27         line: "hello world"
 28         create: yes

一般都是预执行没问题后才会执行剧本:

ansible-playbook  apache.yml -C

 实验二:

答案:

建立用户及用户组

建立文件及目录

实验三:

安装好vsftpd服务,并且允许匿名用户访问。

答案:

本章总结:

1、由于palybook对缩进要求很严,所以先设定一下vim的编辑配置,方便书写playbook语句。

 测试:

以下设定仅对于“yaml”文件生效,不对全局生效

 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
自动化运维工具——ansible是一款开源的IT自动化工具,广泛应用于软件部署、配置管理和任务协同等领域。它的最大特点是简单易用、功能强大且跨平台。 首先,ansible具有简单易用的特点。它使用简单的YAML语言作为配置文件,无需编写复杂的脚本。用户只需要简单地定义主机和操作即可完成任务的执行。这使得即便是非开发人员,也能轻松上手使用ansible进行自动化管理。 其次,ansible功能强大。它支持广泛的操作系统、云平台和网络设备,并提供了丰富的模块化功能。通过在任务使用ansible的模块,我们可以实现系统配置、软件安装、文件传输等各种常见操作。此外,ansible不仅支持并发执行任务,还能够将任务分组执行,并提供了强大的变量和条件控制功能。 再次,ansible跨平台。无论是在Linux、Unix还是Windows系统上,ansible都能够良好地运行。此外,它还支持云平台,如AWS、Azure等,以及网络设备,如Cisco、Juniper等。这使得ansible成为一个非常灵活的自动化运维工具,能够满足各种不同环境和需求的自动化管理。 最后,ansible还具有良好的社区支持。ansible拥有庞大的用户社区和活跃的开发者社区,有大量的文档、示例和插件可供参考和使用。这使得我们在使用ansible时能够获得快速解答和支持,同时也能够从社区学习到更多的技巧和经验。 总而言之,ansible是一款简单易用、功能强大且跨平台的自动化运维工具。它在软件部署、配置管理和任务协同等方面具有广泛的应用,并且得到了良好的社区支持。无论是企业还是个人,都可以通过ansible来提高工作效率和自动化管理水平。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值