質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Ansible

Ansibleは、Python で書かれたサーバーの設定を管理するための 構成管理ツールです。

Q&A

1回答

3914閲覧

Ansibleで変数と文字列を結合させて別の変数として利用したい

toshiya0219

総合スコア4

Ansible

Ansibleは、Python で書かれたサーバーの設定を管理するための 構成管理ツールです。

0グッド

0クリップ

投稿2020/02/23 07:57

前提・実現したいこと

ansibleのunarchiveモジュールを利用してローカルホストに
Istioをインストールについてを試みています。

◆ディレクトリ構成
commands
-istio-install.yml
group_vars
-ita.yml
inventory
-ita

発生している問題・エラーメッセージ

playbookを実行すると下記のエラーが出力されます。

fatal: [localhost]: FAILED! => {"msg": "{u'istio': {u'url': u'1.4.4', u'dir': u'/opt'}, u'stage': u'ita'}: {u'istio': {u'url': u'https://github.com/istio/istio/releases/downlrsion': u'1.4.4', u'dir': u'/opt'}, u'stage': u'ita'}: recursive loop detected in template string: https://github.com/i: u'ita'}: {u'istio': {u'url': u'https://github.com/istio/istio/releases/download/{{gstio/istio/releases/download/{{genv.istio.version}}/istio-{{genv.istio.version}}-linux.tar.gz"}
recursive loop detected in template string: https://github.com/i: u'ita'}: {u'istio': {u'url': u'https://github.com/istio/istio/releases/download/{{gstio/istio/releases/download/{{genv.istio.version}}/istio-{{genv.istio.version}}-linux.tar.gz"}

該当のソースコード

istio-install.yml


  • hosts: all
    connection: local
    become: true
    vars_files:
    • ../group_vars/ita.yml
    tasks:
    • name: downlocad istio
      unarchive:
      src: "{{ genv.istio.url }}"
      dest: "{{ genv.istio.dir }}"
      remote_src: yes

ita.yml


genv:
stage: "ita"
istio:
url: "https://github.com/istio/istio/releases/download/{{genv.istio.version}}/istio-{{genv.istio.version}}-linux.tar.gz"
version: "1.4.4"
dir: "/opt"

ita

[localhost]
local

補足情報(FW/ツールのバージョンなど)

CentOS Linux release 7.7.1908 (Core)
ansible 2.4.2.0

浅学で恐縮ですがご助言いただけますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

recursive loop detected in template string

「再起的なループが変数定義の中に検出されました」という意味です。

genv という変数の定義の中で genv.istio.version という変数を参照しているので、再帰的にループしています(genv.istio.versionを解決しようとすると genv の定義が必要→ genv の定義に genv.istio.version が必要→...)。 genv 変数の中にバージョンを埋め込みたいのであれば、外部で genv_istio_version のような変数で定義すべきです。

投稿2020/02/23 12:16

mit0223

総合スコア3401

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

toshiya0219

2020/02/23 13:42

分かり易いご説明いただきありがとうございます。 ご教示頂いた内容で定義したところ問題なく実行できました。
mit0223

2020/02/24 13:11

お役に立てて良かったです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問