当前位置:首页 > ansible > 正文内容

ansible-playbook 指定变量

下辈子别做运维2023-04-22 22:53:14ansible

指定变量

指定vars

使用vars来指定变量,vars的位置在hosts与tasks之间

格式:变量名称: 变量内容,写的时候另起一行,且缩进两个字符写

需要引用变量的时候最好加上"",如name: "{{ item }}"

示例:

---
- hosts: change
 
  gather_facts: no
  vars:                  ##指定变量
     var1: a1          ##变量名称,变量内容
     var2: b1
  tasks:
     - name: print variable1 
       shell: echo {{ var1 }}        ##使用shell模块输出变量var1的内容
       register: result1
     - debug:
       var=result1.stdout_lines
 
     - name: print variable2
       shell: echo {{ var2 }}       ##使用shell模块输出变量var2的内容
       register: result2
     - debug:
         var=result2.stdout_lines

set_fact模块

可以通过set_fact模块在剧本中传递变量

- name: system variable judge
  shell: grep '^export.*systools.*PATH$' /etc/profile | cat | wc -l
  register: num
 
- set_fact:
  myvar: "{{ num.stdout }}"
- debug:
  msg: "is {{ myvar }}"

ansible7.png


传参

如同在shell脚本中的$1,$2一样,ansible的playbook也可以传参

--extra-vars  

执行方式:ansible-playbook --extra-vars "value=pro1" script.yml

value为设置的变量参数,pro1为要传参的值,传参的值要加上“”

示例:

playbook script.yml内容:

---
- hosts: change
  gather_facts: no
  vars:
    val: "{{ value }}"   ##变量val引用变量value的值,value的值进行传参
  tasks:
  - name: excute script send value
    delegate_to: localhost
    run_once: yes
    script: "{{ playbook_dir }}/test1.sh {{ val }}"   ##执行test1.sh脚本,将val的值传参进脚本中
    register: excu
  - debug:
      var=excu.stdout

脚本test1.sh内容:

#!/bin/bash
 
num=$1
if [ "$num" = "" ];then
  echo "error"
  exit 10
fi
 
echo "the num is $num"

ansible9.png


扫描二维码推送至手机访问。

版权声明:本文由个人博客发布,如需转载请注明出处。

本文链接:https://opszzfwordpress.club/post/183.html

分享给朋友:
返回列表

上一篇:ansible基础

没有最新的文章了...

“ansible-playbook 指定变量” 的相关文章

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。