三ansible-playbook简介编写语法检测

Posted 哭泣的馒头

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了三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

\'三、ansible-playbook简介、编写、语法检测_ansible\'

2、给web主机添加用户l4,设置密码123

cat /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-playbook简介编写语法检测的主要内容,如果未能解决你的问题,请参考以下文章

ansible-playbook调试

ansible-playbook快速入门

ansible-playbook剧本基础

ansible-playbook

Ansible-Playbook

Ansible-playbook 学习