8

Playbook で、変数「ansible_hostname」の最後の文字を抽出しようとしました。

これを行うために regex_replace フィルターを使用しようとしましたが、何も機能しません。

このアドホック コマンドを使用してスクリプトを簡略化しました。

ansible localhost -m debug -a "msg= {{ 'devserver01' | regex_replace('[0-9]{1}$', '\1') }}"

最後の文字「1」を抽出したい。

Ansible 2.0 を使用しています。

4

2 に答える 2

22

Python はその日を救うことができ、この用途では受け入れられます。

文字列または変数の末尾に [-1] を追加するだけで、文字列の最後の文字が取得されます。

ansible localhost -m debug -a "msg={{ 'devserver01'[-1] }}"
于 2016-06-10T12:32:45.047 に答える
-1

以下はあなたのために働くでしょう。

ansible localhost -m debug -a "msg= {{ 'devserver01' | regex_replace('^(.+)([0-9]{1})$','\\1') }}"

説明:

^(.+) : it will take one or more group of characters from start
([0-9]{1})$ : removes one digit from end of string

\\1 : is a back reference to the first group
于 2016-11-23T04:36:53.547 に答える