Ansible之二playbook

Ansible-galaxy

连接https://galaxy.ansible.com下载相应的roles

列出所有安装的   galaxy ansible-galaxy  list

安装galaxy     ansible-galaxy install geerlingguy.redis

删除galaxy     ansible-galaxy remove geerlingguy.redis

ansible-pull

推送命令至全程,效率无限提升,对运维要求较高

Ansible-playbook

ansible-playbook hello.yml

cat hello.yml 
#hello world yml file
-hosts:websrvs
remote_usr:root
tasks:
-name:hello world
command:/usr/bin/wall hello world

 

第一个playbook-   hello.yml

---
-  hosts: all
   remote_user: root

   tasks:
    - name: hello
      command: hostname

执行hello.yml

ansible-playbook hello.yml

ansible系列命令

Ansible-vault

功能:管理加密解密yml文件

ansible-vault [create|decrypt|edit|encrypt|rekey|view]

ansible-vault encrypt hello.yml  加密

ansible-vault decrypt hello.yml  解密

ansible-vault view hello.yml  查看

ansible-vault edit hello.yml  编辑加密文件

ansible-vault rekey hello.yml  修改口令

ansible-vault create hello.yml  创建新文件

ansible-console:2.0新增。可交互执行命令,支持tab

root@test(2)[f:10]$

执行用户@当前操作的主机组(当前组的主机数量)[f:并发数]$

设置并发数:forks n  例如:forks 10

切换组:cd主机组 例如:cd web

列出当前组主机列表: list

列出所有的内置命令: ?或help

示例:root@all(2)[f2:5]$ list        root@all(2)[f:5]$ cd appsrvs        root@appsrvs(2)[f:5]$ list

root@appsrv(2)[f:5] yum name=httpd state=present        root@appsrv(2)[f:5] service name=httpd state=started

playbook

playbook是由一个或多个“play” 组成的列表

play的主要功能在于将事先归并为一组主机装扮成事先通过ansible中的task定义好的角色。从根本上来讲,所谓task无非是调用ansible的一个module。将多个play组织在一个playbook中,即可以让他们联合起来按事先编排的机制同唱一台大戏

playbook采用YAML语言编写

YAML介绍

YAML是一个iekeduxing高的用于表达资料序列的格式。YAML参考了其他多种语言,包括:XML,C语言,Python,Perl以及电子邮件合适RCF2822等。

List:列表,其所有元素均使用 “-” 打头

示例:

#A list of tasty fruits

- Apple

- Orange

- strawberry

- Mango

Dictionary:字典,通常由多个key与value构成

示例:

---

#An employee record

name:employee Doveloper

job:Developer

skill:Elite

也可以将key:value防止于{}中进行标识,用,分隔多个key:value

示例:

---

#An employee record

{name:Example,job:Developer.skill:Elite}

YAML语法:yaml语法和其他高洁语言类似,并且可以简单表达清单,散列表,标量等数据结构。其结构(Structure)通过空格来展示,序列(sequence)离得项用“-”来代表,Map里的键值对用“;”分隔。

Playbook核心元素

Hosts  执行的远程主机列表

Tasks  任务集

Varniable  内置变量或自定义变量在playbook中调用

Templates  模板,可替换模板文件中的变量并实现一些简单逻辑的文件

Handlers和notity结合使用,由特定条件出发的操作,满足条件方才执行,否则不执行

tags标签 指定某条任务执行,用于选择运行playbook中的部分代码。ansible具有幂等特性,因此会自动跳过没有变化的部分,即便如此,有些代码为测试其确实没有发生变化的时间依然会非常地长。此时如果确性其没有变化,就可以通过tags跳过些代码片段

ansible-playbook -t tagsname useradd.yml

 

上一篇:新centos6 静态ip 放行端口 hosts主机名 jdk环境变量


下一篇:Azure DevOps Pipeline 结合 Key Vault集中管理密钥