ansible.builtin.pipe lookupでコマンド実行結果だけもらう

nogajun
nogajun

最近、AnsibleのPlaybookやRoleをゴリゴリ書いてますが、ansible.builtin.pipe lookupで検索かけても日本語情報が1件ぐらいしかないので書いておきます。

ナイトリービルドを日付のディレクトリで公開していて、かつ3日分しか保存してくれないので常にURLが変わってしまう場所からファイルを取ってくる必要がありました。しかも、公開の日付は日本時間の当日ではなく時差で前日の日付が最新でした。

そこからどうやってダウンロードしようかと考えてたけれど、ansible.builtin.pipe lookupを使うとコマンドを実行して結果だけ返してくれます。dateコマンドを使って前日の日付を生成するとこんな感じ。

- name: 前日の日付を生成する
  ansible.builtin.debug:
    msg: "{{ lookup('ansible.builtin.pipe', 'date +%Y%m%d --date yesterday') }}"

これはメッセージで出力してるだけだけど変数に入れたりもできます。Playbookを書いてて「シェルスクリプトなら一発でできるのに!」と思うことがpipe lookupならできるので使うといいんじゃないでしょうか。