无聊的IT

导航

1-4 ansible playbook 参数传递

hosts文件内容
cat /home/yy1s/django/extra_app/ansible/hosts

[test_group2]
144.131.252.142 ansible_ssh_user=yy1s
144.131.252.144 ansible_ssh_user=yy1s ansible_ssh_pass='yy1s'
[test_group3]
144.131.252.252 ansible_ssh_user=yy1s ansible_ssh_pass='yy1s'
144.131.252.162 ansible_ssh_user=root ansible_ssh_pass='root'
144.131.252.163 ansible_ssh_user=ro ansible_ssh_pass='root'


[test_group1:children]
test_group2
test_group3


------------------------------------------------------------------------------------------------------------------


(jiankong_venv) [yy1s@rbtnode1 playbook]$ cat f1.yml
--- - hosts : 144.131.252.162 remote_user : root vars : touch_file : imoocc.file tasks : - name : touch file shell: "touch /tmp/{{touch_file}}"
# -i 制定主机配置文件 --list-hosts列出f1.yml里面配置的主机 (jiankong_venv) [yy1s@rbtnode1 playbook]$ ansible
-playbook -i /home/yy1s/django/extra_app/ansible/hosts --list-hosts ./f1.yml playbook: ./f1.yml play #1 (144.131.252.162): 144.131.252.162 TAGS: [] pattern: ['144.131.252.162'] hosts (1): 144.131.252.162

# 执行剧本
(jiankong_venv) [yy1s@rbtnode1 playbook]$ ansible-playbook -i /home/yy1s/django/extra_app/ansible/hosts  ./f1.yml 
(jiankong_venv) [yy1s@rbtnode1 playbook]$ ansible-playbook   ./f1.yml 


-----------------------------------------------------------------------------------------------------------------------

#以--extra-vars传递变量
(jiankong_venv) [yy1s@rbtnode1 playbook]$ cat f1.yml
---
- hosts : 144.131.252.162
  remote_user : root
#  vars :
#        touch_file : imoocc.file
  tasks :
        - name : touch file
          shell: "touch /tmp/{{touch_file}}"

#从外部传入参数
(jiankong_venv) [yy1s@rbtnode1 playbook]$ ansible-playbook ./f1.yml --extra-vars "touch_file=123"

------------------------------------------------------------------------------------------------------

# 从文件传入参数

(jiankong_venv) [yy1s@rbtnode1 playbook]$ cat ../hosts
[test_group2]
144.131.252.142 ansible_ssh_user=yy1s
144.131.252.144 ansible_ssh_user=yy1s ansible_ssh_pass='yy1s'
[test_group3]
144.131.252.252 ansible_ssh_user=yy1s ansible_ssh_pass='yy1s'
144.131.252.162 ansible_ssh_user=root ansible_ssh_pass='root'
144.131.252.163 ansible_ssh_user=ro ansible_ssh_pass='root'

[test_group1:children]
test_group2
test_group3

[test_group2:vars]
touch_file=jeason3

 
(jiankong_venv) [yy1s@rbtnode1 playbook]$ cat f1.yml
---
- hosts : 144.131.252.144
  remote_user : root
#  vars :
#        touch_file : imoocc.file
  tasks :
        - name : touch file
          shell: "touch /tmp/{{touch_file}}"


(jiankong_venv) [yy1s@rbtnode1 playbook]$ ansible-playbook ./f1.yml


-------------------------------------------------------------------------------------------

#使用register注册

(jiankong_venv) [yy1s@rbtnode1 playbook]$ cat f4.yml
---
- hosts : 144.131.252.144
remote_user : root
vars :
touch_file : imoocc.file
tasks :
- name : get date
command : date              #date命令的输出赋值给变量date_output
register : date_output
- name : touch file
shell: "touch /tmp/{{touch_file}}"
- name : echo data_output
shell : "echo {{date_output.stdout}} > /tmp/{{touch_file}}"

 

 

(jiankong_venv) [yy1s@rbtnode1 playbook]$ ansible-playbook ./f4.yml









 

posted on 2019-02-12 18:37  秦寒  阅读(635)  评论(0)    收藏  举报