开发者学堂课程【运维自动化学习第二课时:Ansible-playbook 的使用】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/805/detail/13879
Ansible Playbook 的使用
一、Playbook 介绍
二、Playbook 语法
三、Playbook 示例
四、Playbook 常用模块
一、Ansible playbook 介绍
- Ansible playbook 是一系统ansible 命令的集合,其利用yaml 语言编写、运行。
- 在运行过程中,ansible playbook 命令根据自上而下的顺序依次执行。
- Playbook开创了很多特性,它可以允许它传输某个命令状态到后面的指令,如你可以从一台机器的文件中抓取内容并附为变量,然后在另一台机器中使用。这使得你可以实现一些复杂的部署机制。
Playbook 与shell 脚本的区别
二、Ansible playbook 的语法
Playbook 文件有YAML 语言编写, YAML 是一个类似于XML、JSON 的标记性语言,YAML 强调以数据为中心,并不是以标记语言为重点。因而YAML 本身的定义比较简单,号称“一种人性化的数据格式语言”。
- 大小写敏感
- 使用空格作为嵌套缩进工具,缩进时不允许使用tab键
- 缩进的空格数目不重要,只要相同层次的元素左侧对齐即可
- 使用“-”(横线)+单个格:表示单个列表项
- 使用“:”(冒号)+单个空格:表示单个键值对
- 使用“{}”表示一个键值表
编写Playbook 的提醒
- 编写时添加空格:通过空格来组的内容,可以让你的内容更加容易被理解。
- 为任务添加命名:通过为任务设定名称,可以在运行输出时表明在执行什么任务,对于后续debug 有帮助。
- 为任务添加注释:良好的注释会为你的持续维护提供帮助。
三、Playbook 示例
四、Playbook 常用模块
1、Playbook 常用的模块-ping
Ping 检查指定节点机器是否还能联通,用法很简单,不涉及参数主机,如果在线则回复pong。
2、Playbook 常用模块-yum
Yum模块可以用于在服务器上安装特定软件
3、Playbook 常用模块-pip
Pip模块可以用于安装一些python依赖
4、Playbook 常用模块-copy
Copy模块可以将本地文件拷贝至远程服务器
5、Playbook 常用模块-template
Template 模块可以以模板的方式来生成文件并拷贝至服务端
Template 模块基于Jinja2模块引擎实现
6、Playbook 常用模块-user
user模块可以执行用户管理功能,对服务器用户进行管理。
7、Playbook 常用模块-group
Group模块可以对用户组进行管理。
8、Playbook 常用模块-get_ url
get _url模块可以实现从网络上下载文件到主机上.
9、Playbook 常用模块-fetch
Fetch模块可以实现将文服务端文件拷位置本地。
10、Playbook 常用模块-systemd
ystemd模块可以管理服务器上的服务,操作服务的启停。
11、Playbook 常用模块-cron
cron模块可以用于配置服务端的crontab服务
12、Playbook 常用模块-file
file 模块可以管理远程服务器上的文件
13、Playbook 常用模块command
command 的模块可以用于执行命令
command 的模块和shell 模块的区别是command 的模块执行时不含Shell 的环境变量。
总结:简单的介绍了一下ansible-playbook以及会用到的一些具体的模块。这些模块的理解,会对学习内容去编写具体的playbook会有所帮助。