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
标签:ansible,hello,Ansible,playbook,vault,之二,yml,galaxy 来源: https://www.cnblogs.com/wxp100/p/14356183.html