博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ansible学习笔记-playbook
阅读量:5768 次
发布时间:2019-06-18

本文共 2206 字,大约阅读时间需要 7 分钟。

hot3.png

1、palybook简单实例

---- hosts: all  user: root  vars:      - name: "dxx"      - age: 15  tasks:     - name: echo {
{name}}       shell: echo {
{name}}       notify: - say hello  handlers:      - name: say hello        shell: echo "say hello"

2、变量引用

可在playbook、单个任务中

(1)vars:       - name: dxx       - age: 14(2)vars_files:       - variables(3)vars_prompt:       - name: version         prompt: please input version         private: no

3、字典和列表变量的调用

     class.name

      class[0].name

4、task使用3种方法

- name: copy /aaa  action: copy src=/aaa dest=/bbb/aaa- name: copy /aaa  copy: src=/aaa dest=/bbb/aaa- name: copy /aaa  copy:    src: /aaa     dest: /bbb/aaa

5、handlers注意

(1)当任务执行完毕后才会通知

(2)无论通知多少次,最终只会通知一次(????具体是哪一次)

(3)没有调用通知,handler也不会执行

6、变量定义设置默认值

work_name="{
{ name |default(tom) }}"

7、with_items使用

正确姿势:with_items:  - aa: 11    bb: 22  - aa: 55    bb: 66with_items:  - {aa: 11,bb: 22}  - {aa: 55,bb: 66}错误姿势with_items:  aa: 11  bb: 22

8、roles 角色

(1)作用

 角色允许你将变量、文件、模板、handler、任务放到一个文件夹中,然后包含他们。

 角色中可以包含角色(在建立好一个有效的依赖关系后),也可以传递变量给角色

(2)可包含的文件夹,不使用可以删除

main.ymlroles   myslq     files              存放role需要的文件     tasks              存放playbook的yml文件     templates          存放模板文件     handlers           存放调用任务文件(类似编码中定义的外部函数)     vars               存放role中的变量文件     meta                    defaults   redis     files     tasks     templates     handlers     vars     meta     defaults

(3)使用方式

---- hosts: webserver  roles:    - { role: start_server }    - { role: end_server, port: 80}    - { role: restart_server, when: port is defined }- hosts: mysql  roles:    - { role: start_mysql }- hosts: redis  tasks:    - name: include_role tomcat      include_role: name=tomcat port=8080

9、条件判断when

(1)when

#when的常用语法when: foo is definedwhen: foo is not definedwhen: result|failedwhen: result|successwhen: result|skippedvars:   trip: truewhen: tripwhen: ansible_os_family == 'RedHat'when: not ansible_os_family =="RedHat" or ansible_os_family =="Debian"#如果包含hiwhen: resut.stdout.find('hi') != -1

(2)changed_when

当满足某些条件时,部署状态显示changed。

(3)failed_when

当满足某些条件时,部署状态显示失败。

注意:include_role任务中,使用when,不能包含变量(会报条件状态异常)

          解决方案:通过block来保住include_role,给block设置when条件。

转载于:https://my.oschina.net/u/1783725/blog/1593464

你可能感兴趣的文章
我的友情链接
查看>>
Linux shutdown和Init的命令区别,以及计算带宽
查看>>
USB之基本协议和数据波形1
查看>>
Oracle 约束(constraint)的几个参数的小研究
查看>>
蓝牙inquiry流程之Inquiry Complete处理
查看>>
J2EE开发一点总结
查看>>
OO第一单元总结
查看>>
如何打造亚秒级加载的网页3——用户体验 总结
查看>>
1242 布局
查看>>
2630 宝库通道
查看>>
Windows PowerShell 集成脚本环境 (ISE)
查看>>
silverlight,WPF动画终极攻略之会飞的小鸟篇(Blend 4开发)
查看>>
DTcms会员中心添加新页面-会员投稿,获得所有文章并分页
查看>>
DTCMS自定义标签,获取所有栏目以及获得二级子栏目导航
查看>>
如何对web系统进行全面测试
查看>>
几何画板演示空间几何体三视图的步骤
查看>>
centos7 crontab笔记
查看>>
encodeURIComponent()
查看>>
Android 扫描蓝牙设备
查看>>
Charles常用设置
查看>>