【三ansible-playbook简介编写语法检测】一年好景君须记,最是橙黄橘绿时。这篇文章主要讲述三ansible-playbook简介编写语法检测相关的知识,希望能为你提供帮助。
一、ansible-doc的局限?每次只能在被管理节点上执行简单的命令。
日常工作中,我们往往面临的是一系列的复杂操作,例如我们有可能需要安装软件、更新配置、启动服务等等一系列操作的结合。
?在这种场景下,Ansible引进了 、PLAYBOOK 来帮忙我们解决这样复杂问题。
二、Playbook简介??playbook是ansible用于配置、部署和管理托管主机剧本,通过playbook的详细描述,执行其中的一些列tasks,可以让远端主机达到预期状态
?Playbook 也通常被大家翻译成剧本。
可以认为它是Ansible 自定义的一门语言(可以将 Playbook比作Linux中的 shell,Ansible中的Module可以比作为 Linux 中的各种命令)?
(1)playbook是对AD-Hoc的一种编排方式
(2)playbook可以持久运行,而AD-Hoc只能临时运行
(3)playbook适合复杂的任务,而AD-Hoc适合快速简单的任务
(4)playbook能控制任务执行的先后顺序
1、playbook语法格式yaml?playbook遵循yaml语法格式
(1)以#为注释符
(2)以.yml或.yaml结尾
(3)以---开始,以...结束,但是开头和结束符都是可选的
2、基本语法?(1)大小写敏感
?(2)缩进 YAML使用固定的缩进风格表示层级结构,每个缩进由两个空格组成,不能使用tab
(3)冒号 以冒号结尾的除外,其他所有冒号后面所有必须有空格
(4)短横线 表示列表项,使用一个短横杠加一个空格,段哥项使用相同的缩进级别作为同一列表
3?、playbook执行结果使用ansible-playbook运行playbook文件,输出内容为json格式。由不通颜色组成便于识别
?(1)绿色表示执行成功
?(2)红色代表执行失败
?(3)其他颜色表示系统状态发生改变
三、ansible-playbook案例?1、安装apache,端口为8080,默认主页hello world, 启动服务,设置开机自启创建工作目录,配置主机清单
mkdir /project/apache -p
cat /project/apache/hosts
[webserver]
192.168.10.128
[dbserver]
192.168.10.130
[all:vars]
ansible_ssh_port=22
ansible_ssh_user=root
ansible_ssh_pass=\'123456\'
?配置playbook文件
cat apache.yaml
---
- hosts: webserver
remote_user: root
tasks:
- name: install the latest version of apache
yum:
name: httpd
state: latest
- lineinfile:
path: /etc/httpd/conf/httpd.conf
regexp: \'^Listen \'
insertafter: \'^#Listen \'
line: Listen 8080
- copy:
src: index.html
dest: /var/www/html/index.html
owner: apache
group: apache
mode: \'0644\'
- service:
name: httpd
state: started
enabled: yes
?cat index.html
hello world
?ansible-playbook apache.yaml -i hosts
文章图片
2、给web主机添加用户l4,设置密码123cat /project/apache/user.yaml
---
- hosts: webserver
remote_user: root
vars:
username: l4
tasks:
- name: create user "{{ username }}"
user:
name: "{{ username }}"
group: root
#password: "{{ \'123\'|password_hash( \'sha512\' )}}"
- shell: echo 123|passwd --stdin "{{ username }}"
四、playbook语法检测检测语法
ansible-playbook webserver --syntax-check myplaybook.yml -i hosts
如何每步跟从调试playbook
ansible-playbook webserver myplaybook.yml --step -i hosts
如何运行测试,会执行完整个playbook,但是所有Task的行为都不会在远程服务器伤执行,所有执行行为都是模拟行为
ansible-playbook webserver myplaybook.yml -i hosts -C
使用python检测yaml
python -c \'import yaml,sys; print yaml.safe_load(sys.stdin)\' < myplaybook.yml
推荐阅读
- 二ansible基础模块介绍
- 四ansible-playbook案例(nfslnmp+可道云tomcatnginx)
- Unraid安全移除硬盘不丢失数据
- 五ansible变量
- 六ansible-playbook任务控制
- 十二使用percona zabbix mysql-plugin监控mysql数据库
- 八ansible roles和ansible galaxy
- 文件消失之谜——记一起linux文件被异常删除
- WIN10升级到WIN11(绕过检查)