ansible学习笔记-playbook常用模块
2017-12-25 00:00
465 查看
摘要: template、set_facs、pause、wait_for、assemable
(2)模板中可以使用jinja的语法,如循环、条件、宏等
1、template 模板文件
(1)在模板中调用外部的变量,调用方式{{ xxx }}(2)模板中可以使用jinja的语法,如循环、条件、宏等
#注意: 在{% %}中使用外部变量,不能加{{}} {% for ip in ansible_all_ipv4_addresses %} {{ ip }}; {% endfor %} # group_names 主机所在组名 {% if 'node_slave' in group_names %} slave {% else %} master {% endif %}
2、set_facs
运行过程中在受控主机上设置变量或计算变量值--- - hosts: localhost tasks: - name: set fact 1 set_fact: foo="[ 'zero' ]" - name: set fact 2 set_fact: foo="{{ foo }} + [ 'one' ]" - name: set fact 3 set_fact: foo="{{ foo }} + [ 'two', 'three' ]" - name: set fact 4 set_fact: foo="{{ foo }} + [ '{{ item }}' ]" with_items: - four - five - six - debug: var=foo 输出: "foo": [ "zero", "one", "two", "three", "six" ]
3、include_role 任务中添加角色
(1)常用方式
--- - hosts: localhost vars: flag: false tasks: - name: bbbbbbbb shell: echo bbbb - name: include test #方式1 include_role: name=test - name: include test 2 #方式2 include_role: name: test - name: cccccccccc shell: echo cccccccc
role中可以继续使用include_role
注意:最好不要这样,如果循环调用中调用前面的role,会出现死循环。(2)陷阱
a、使用when时,不能使用变量值
--- - hosts: localhost vars: flag: false tasks: - name: bbbbbbbb shell: echo bbbb - name: include test include_role: name=test when: flag #flag是变量,会报错 - name: cccccccccc shell: echo cccccccc
b、可以使用with_items
--- - hosts: localhost vars: flag: false tasks: - name: bbbbbbbb shell: echo bbbb - name: include test include_role: name=test with_items: - myname: dxx - name: cccccccccc shell: echo cccccccc
4、pause 暂停模块,用于与用户交互
--- - name: time wait pause: seconds=30 - name: wait on user choose pause: prompt="Warning Detected slight issue .ENTER to continue CTRL_C to quit"
5、wait_for
用于启动某些进程需要一些时间很有用,如tcp端口是否连接--- - hosts: webapps tasks: - name: install tomcat6 yum: name=tomcat6 state=installed - name: service start service: name=tomcat6 state=start - name: wait for tomcat6 to start wait_for: port=8080 state=started
6、assemable 将多个文件合并成一个文件
--- #受控主机免密登录dan、linna、wuzhu主机 - hosts: all tasks: - name: make /opt/sshkeys dirctory file: path=/opt/sshkeys state=dirctory owner=root group=root mode=0700 - name: copy sshkey over copy: src=/keys/{{item}}.pub dest=/opt/sshkeys/{{item}}.pub owner=root group=root mode=0600 with_items: - dan - linna - wuzhu - name: make /root/.ssh dirctory file: path=/root/.ssh state=dirctory owner=root group=root mode=0700 - name: build the authorized_keys file assemable: src=/opt/sshkeys dest=/root/.ssh/authorized_keys
6、其他模块
(1)add_host
动态添加受管主机到playbook中(2)get_url、uri
- name: download foo.conf get_url: url=http://example.com/path/file.conf dest=/tmp/foo.conf mode=0440
(3)group_by 创建组根据facts
- name: create group like 'kvm-host' group_by: key=virt_{{ ansible_virtualization_type}}_{{ ansible_virtualization_role }}
(4)script
将控制主机的脚本在被管理主机上运行(5)debug 调试
- name: debug debug: msg="{{ansible_distribution}}" var="aaaa"
相关文章推荐
- Ansible7:Playbook常用模块【转】
- Ansible学习笔记之常用模块汇总
- Asible常用的模块和简单的playbook使用
- Ansible7:Playbook常用模块
- 运维自动化之ansible使用详解(包括常用模块与playbook使用)
- Ansible7:Playbook常用模块
- Ansible7:Playbook常用模块
- 自动化运维工具Ansible实战(六)playbook常用的模块
- Ansible之七:Playbook常用模块
- 常用模块及函数
- apache常用模块
- OS模块的常用内置方法
- python 常用模块
- SAP WM模块常用T-code
- 高性能Web服务器Nginx的配置与部署研究(9)核心模块之HTTP模块基本常用指令
- Ansible常用模块介绍
- 项目常用功能模块(3)-ztree树节点名称太长
- nginx常用模块
- Python_常用模块
- Ansible的安装、配置及常用模块介绍