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

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

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

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2236閲覧

ansibleでmountさせたい。

katosei

総合スコア32

Ansible

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/03/25 13:59

目的

ansibleでマウントさせたい。
変数を利用するとうまく動かない。

yml

tasks/main.yml

- name: include file include: "mount.yml" with_items: - disk1 - disk3 loop_control: loop_var: target

vars/disks.yml

disks: disk1: path: /disk1 src: 10.0.0.100:/disk1 disk2: path: /disk2 src: 10.0.0.100:/disk2 disk3: path: /disk3 src: 10.0.0.100:/disk3

tasks/mount.yml

- name: include file base include_vars: "disks.yml" # エラーになる - name: "mount" mount: path: disks.{{target}}.path src: disks.{{target}}.src fstype: nfs state: mounted # こっちもエラーになる - name: "mount" mount: disks.{{target}}

困っている事

path: disks.{{target}}.path

これだとdisks.disk1.pathという文字列だと認識され、エラー

path: "{{disks.{{target}}.path}}"

ネストするとエラー

mount: disks.{{target}}

変数にまるごと入れてもエラー

mount: "{{disks.{{target}}}}"

ネストするとエラー

質問

良い解決法はありますか?

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

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

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

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

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

guest

回答1

0

ベストアンサー

disks変数は辞書になっていますので、以下の様に記述すればよいのではないかと思います。

yml

1- name: "mount" 2 mount: 3 path: {{ disks[target]["path"] }} 4 src: {{ disks[target]["src"] }} 5 fstype: nfs 6 state: mounted

一応、http://jinja.quantprogramming.com/ で動作の確認はしています。
そのときのコードはこれです。

yml

1{% for target in ["disk1", "disk2", "disk3"] %} 2- name: "mount" 3 mount: 4 path: {{ disks[target]["path"] }} 5 src: {{ disks[target]["src"] }} 6 fstype: nfs 7 state: mounted 8{% endfor %}

投稿2019/04/01 10:26

TakaiY

総合スコア12779

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

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

katosei

2019/04/04 12:08

ありがとうございます! 無事出来ました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問