はじめに
@
や などをURLエンコード(
%40
や %20
)したいと思い、Ansible の Filter のページ を参照しましたが、それらしいフィルターはありませでした。
ならばと思って、Jinja2 のドキュメントを見ると urlencode()
というフィルターがありました。
この記事では簡単なサンプルで紹介します。
- 検証環境
- Ansible 2.9.9
- Jinja2 2.11.2
サンプル
--- - hosts: localhost gather_facts: false tasks: - name: debug debug: msg: "{{ item | urlencode() }}" loop: - kingyo@example.com - Hello World
実行
$ ansible-playbook -i locahost, urlencode.yml PLAY [localhost] **************************************************************************************************** TASK [debug] ******************************************************************************************************** ok: [localhost] => (item=kingyo@example.com) => { "msg": "kingyo%40example.com" } ok: [localhost] => (item=Hello World) => { "msg": "Hello%20World" } PLAY RECAP ********************************************************************************************************** localhost : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
@
が %40
に、 が
$20
にURLエンコードされて表示されました。
おわりに
Ansible ドキュメントで目的のフィルターが見つからないときは、Jinja2のドキュメントを確認するのが吉です。