Ansible で、ファイル名が入った変数の拡張子を省いて展開したい


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

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

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

### 追記:

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

* * *

### test.yml

[code]

    ---
    - 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
    
[/code]

### 実行コマンド

[code]

    ansible-playbook test.yml
    
[/code]

### 期待する動作

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

### 実際の動作

  * test.txt の中身が `hoge.txt` になる




@unarist さんのコメントに従い、 debug モジュールを試してみることにしました。すると、期待通りの動作をしていることがわかりました。

何が、問題だったのだろうと今考えている状態です。

### 改良した playbook

[code]

    ---
    - name: test ansible
      hosts: localhost
      user: ubuntu
      vars:
        file_name: "hoge.txt"
      tasks:
        - name: Hello server
          debug:
            msg: "Expand file_name Result: {{ file_name | regex_replace('^(.*)\\.[^\\.]*$','\\1') }}"
    
[/code]

### 実行結果

[code]

    PLAY [test ansible] ************************************************************
    
    TASK [setup] *******************************************************************
    ok: [localhost]
    
    TASK [Hello server] ************************************************************
    ok: [localhost] => {
        "msg": "Expand file_name Result: hoge"
    }
    
    PLAY RECAP *********************************************************************
    localhost                  : ok=2    changed=0    unreachable=0    failed=0
    
[/code]




置換の部分を以下のようにしてはいかがでしょうか。

[code]

    echo ${file_name%.*} > test.txt
    
[/code]

手元で試す用に一応シェルスクリプトで書くと

[code]

    #!/bin/sh
    
    file_name="hoge.txt"
    echo ${file_name%.*} > test.txt
    
[/code]

