5,ansible5

Playbook定义变量与使用
1,定义变量几种方式
[root@es1 playbook-demo]# cat demo7.yml 
---
- hosts: webservers
  gather_facts: no
  
  tasks:
  - name: test var
    debug: msg="{{work_dir}}"
[root@es1 playbook-demo]# 
[root@es1 playbook-demo]# ansible-playbook demo7.yml  --syntax-check

playbook: demo7.yml
[root@es1 playbook-demo]# 
[root@es1 playbook-demo]# ansible-playbook demo7.yml  -e work_dir=/usr/local/

PLAY [webservers] ********************************************************************************************************************************************************************************

TASK [test var] **********************************************************************************************************************************************************************************
ok: [192.168.0.12] => {
    "msg": "/usr/local/"
}
ok: [192.168.0.13] => {
    "msg": "/usr/local/"
}

PLAY RECAP ***************************************************************************************************************************************************************************************
192.168.0.12               : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
192.168.0.13               : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

[root@es1 playbook-demo]# 

2,主机清单定义(hosts文件中定义)
3,Playbook中定义
[root@es1 playbook-demo]# cat demo8.yml 
---
- hosts: webservers
  gather_facts: no
  vars:
    - work_dir: /usr/local
      
  
  tasks:
  - name: test var
    debug: msg="{{work_dir}}"
[root@es1 playbook-demo]# 
[root@es1 playbook-demo]# ansible-playbook demo8.yml  --syntax-check

playbook: demo8.yml
[root@es1 playbook-demo]# 
[root@es1 playbook-demo]# ansible-playbook demo8.yml

PLAY [webservers] ********************************************************************************************************************************************************************************

TASK [test var] **********************************************************************************************************************************************************************************
ok: [192.168.0.13] => {
    "msg": "/usr/local"
}
ok: [192.168.0.12] => {
    "msg": "/usr/local"
}

PLAY RECAP ***************************************************************************************************************************************************************************************
192.168.0.12               : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
192.168.0.13               : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

[root@es1 playbook-demo]# 
[root@es1 playbook-demo]# 

4,注册变量
注册变量会将命令的结果赋值给这个变量
[root@es1 playbook-demo]# cat demo9.yml 
---
- hosts: webservers
  gather_facts: no
  vars:
    - work_dir: /usr/local
      
  
  tasks:
  - name: register var
    command: date +"%F_%T"
    register: datetime

  - name: test var 
    debug: msg="{{datetime}}"    

  - name: touch file
    file: dest=/tmp/r_{{datetime.stdout}} state=touch
[root@es1 playbook-demo]# 
[root@es1 playbook-demo]# ansible-playbook demo9.yml

PLAY [webservers] ********************************************************************************************************************************************************************************

TASK [register var] ******************************************************************************************************************************************************************************
changed: [192.168.0.12]
changed: [192.168.0.13]

TASK [test var] **********************************************************************************************************************************************************************************
ok: [192.168.0.12] => {
    "msg": {
        "ansible_facts": {
            "discovered_interpreter_python": "/usr/bin/python"
        }, 
        "changed": true, 
        "cmd": [
            "date", 
            "+%F_%T"
        ], 
        "delta": "0:00:00.005824", 
        "end": "2020-11-08 13:12:47.875858", 
        "failed": false, 
        "rc": 0, 
        "start": "2020-11-08 13:12:47.870034", 
        "stderr": "", 
        "stderr_lines": [], 
        "stdout": "2020-11-08_13:12:47", 
        "stdout_lines": [
            "2020-11-08_13:12:47"
        ]
    }
}
ok: [192.168.0.13] => {
    "msg": {
        "ansible_facts": {
            "discovered_interpreter_python": "/usr/bin/python"
        }, 
        "changed": true, 
        "cmd": [
            "date", 
            "+%F_%T"
        ], 
        "delta": "0:00:00.006202", 
        "end": "2020-11-08 13:12:47.906527", 
        "failed": false, 
        "rc": 0, 
        "start": "2020-11-08 13:12:47.900325", 
        "stderr": "", 
        "stderr_lines": [], 
        "stdout": "2020-11-08_13:12:47", 
        "stdout_lines": [
            "2020-11-08_13:12:47"
        ]
    }
}

TASK [touch file] ********************************************************************************************************************************************************************************
changed: [192.168.0.13]
changed: [192.168.0.12]

PLAY RECAP ***************************************************************************************************************************************************************************************
192.168.0.12               : ok=3    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
192.168.0.13               : ok=3    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

[root@es1 playbook-demo]# 

  

posted @ 2020-11-17 23:11  pwcc  阅读(107)  评论(0)    收藏  举报