Ansible で、変数にファイル名がバインドされているとします。その拡張子を省いて展開したいです。

以下の通り、 regex_replace を用いればできるではないか、と思っているのですが、うまくいっていないです。

どうやったら、やりたいことが実現できるでしょうか。

追記:

以下のプログラムは、本当にやりたいことである、「変数から拡張子を省いて展開」をどうにかしてできないかと試行するために作った playbook です。シェルの機能で回避したいわけではないです。。


test.yml

---
- name: test ansible
  hosts: localhost
  user: ubuntu
  vars:
    file_name: "hoge.txt"
  tasks:
    - name: Hello server
      shell: echo "{{ file_name | regex_replace('^(.*)\\.[^\\.]*$','\\1') }}" > test.txt

実行コマンド

ansible-playbook test.yml

期待する動作

  • test.txt の中身が hoge になる。

実際の動作

  • test.txt の中身が hoge.txt になる