ansible-playbook字符串分割和默认变量的用法

一、ansible-playbook 字符串分割 和 默认变量 的脚本

---
- hosts: all
  remote_user: root
  gather_facts: no    #不采集对方机器的数据,提高执行速度
  ignore_unreachable: true
  tasks:
  - name: 预先设定个变量
    set_fact:
      hostname1: "node-12-34-56-alysh-g1.saicmotor.com"

  - name: 将客户端的java进程数注册为变量
    set_fact:
      name_tmp1: "serena_default_value"

  - name: test 1
    debug:
      msg: "打印变量hostname1 {
   
   { hostname1 }}"
    run_once: true

  - name: 应当得到值alysh。这是一个分割字符串的操作
    set_fact:
      host_suffix: "{
   
   {hostname1.split('.')[0].split('-')[4] }}"
    

  - name: print suffix
    debug:
      var: host_suffix


  - name: 如果执行playbook时没指定-e_双引号name=serena双引号,则选取脚本里准备的默认变量name_tmp1的值
    debug:
      msg: "hehe, {
   
   { name | default(name_tmp1, boolean=true)}}"

二、执行结果如下

[root@salt-master testansible]# ansible-playbook -i iplist a.yml -e "name=serena_haha"
[WARNING]: Found variable using reserved name: name

PLAY [all] **********************************************************************************************************************************************************************************************

TASK [预先设定个变量] ******************************************************************************************************************************************************************************************
ok: [10.100.100.20]
ok: [10.100.100.30]
ok: [10.100.100.50]
ok: [10.100.100.40]

TASK [将客户端的java进程数注册为变量] ********************************************************************************************************************************************************************************
ok: [10.100.100.20]
ok: [10.100.100.30]
ok: [10.100.100.50]
ok: [10.100.100.40]

TASK [test 1] *******************************************************************************************************************************************************************************************
ok: [10.100.100.20] => {
    "msg": "打印变量hostname1 node-12-34-56-alysh-g1.saicmotor.com"
}

TASK [应当得到值alysh。这是一个分割字符串的操作] **************************************************************************************************************************************************************************
ok: [10.100.100.50]
ok: [10.100.100.20]
ok: [10.100.100.30]
ok: [10.100.100.40]

TASK [print suffix] *************************************************************************************************************************************************************************************
ok: [10.100.100.50] => {
    "host_suffix": "alysh"
}
ok: [10.100.100.40] => {
    "host_suffix": "alysh"
}
ok: [10.100.100.20] => {
    "host_suffix": "alysh"
}
ok: [10.100.100.30] => {
    "host_suffix": "alysh"
}

TASK [如果执行playbook时没指定-e_双引号name=serena双引号,则选取脚本里准备的默认变量name_tmp1的值] ************************************************************************************************************************************
ok: [10.100.100.30] => {
    "msg": "hehe, serena_haha"
}
ok: [10.100.100.20] => {
    "msg": "hehe, serena_haha"
}
ok: [10.100.100.50] => {
    "msg": "hehe, serena_haha"
}
ok: [10.100.100.40] => {
    "msg": "hehe, serena_haha"
}

PLAY RECAP **********************************************************************************************************************************************************************************************
10.100.100.20              : ok=6    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
10.100.100.30              : ok=5    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
10.100.100.40              : ok=5    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
10.100.100.50              : ok=5    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0 

 ---------答应我别做运维这一行--------2023年6月6日23:56:56----------

猜你喜欢

转载自blog.csdn.net/xoofly/article/details/131078438