Shell 如何在ansible中过滤/修剪特定变量值

Shell 如何在ansible中过滤/修剪特定变量值,shell,ansible,ansible-facts,Shell,Ansible,Ansible Facts,我需要提取/过滤ansible中字符串的特定长度。例如:- 我的节点计算机有以下主机名:-jpujenkins,jpunessus 事实上,我们会有一个变量 {{ansible_hostname}-->jpujenkins {{ansible_hostname}}-->jpunessus 但我需要从所有节点主机名中删除前三个字母,即“jpu” 期望输出:-jenkins,nessus 也可以大写字母say JENKINS,NESSUS?您可以使用regex\u replaceAnsible过滤器

我需要提取/过滤ansible中字符串的特定长度。例如:-

我的节点计算机有以下主机名:-jpujenkins,jpunessus

事实上,我们会有一个变量

{{ansible_hostname}-->jpujenkins

{{ansible_hostname}}-->jpunessus

但我需要从所有节点主机名中删除前三个字母,即“jpu”

期望输出:-jenkins,nessus


也可以大写字母say JENKINS,NESSUS?

您可以使用
regex\u replace
Ansible过滤器来满足您的需要。

例如,我的主机名是ip-192-168-1-65

---
- hosts: all
  tasks:
    - debug: msg="{{ ansible_hostname | regex_replace('^ip-', '') }}"
当我执行playbook时,它返回主机名,
“^ip-”
部分被替换为空字符串


@不客气!如果有帮助,请接受我的回答。
TASK [debug] *********************************************************************************************************************************************************************
Tuesday 28 April 2020  11:18:24 +0300 (0:00:07.281)       0:00:07.498 *********
ok: [localhost] =>
  msg: 192-168-1-65