ansible学习笔记-playbook常用模块

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"

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值