2016-07-25 9 views
0

各サーバー(WebおよびPerl)について、サーバーの種類ごとに異なるマウントポイントがあります。 Webサーバーの場合、 "web_mounts"のエントリを使用したいと思います。perlは "perl_mounts"となります。動的変数を安全なロールに渡す方法

「web_mounts」を「with_items」にハードコードすると正常に動作します。それ以外の場合は、 "nfs_group"が定義されていないことを通知します。

トップレベル

roles: 
    - { role: webs, nfs_group: "web_mounts" } 

役割/ nfs_mounts/VARS/main.yml

--- 
web_mounts: 
    - { source: "nfs.local:/nfs/web1, dest: "/web1", opts: "rw,noatime" } 
    - { source: "nfs.local:/nfs/web2, dest: "/web2", opts: "rw,noatime" } 

perl_mounts: 
    - { source: "nfs.local:/nfs/perl1, dest: "/perl1", opts: "rw,noatime" } 
    - { source: "nfs.local:/nfs/perl2, dest: "/perl2", opts: "rw,noatime" } 

役割/ nfs_mounts /タスク/ main.yml

- name: Create fstab entries 
    mount: fstab=nfs state=present opts="{{ item.opts }}" src="{{ item.source }}" name="{{ item.dest }}" 
    with_items: "{{ nfs_group }}" 
+0

あなたの 'vars'には、引用符がありません。 – tedder42

答えて

1

グループあなたのマウントでこれは次のようになります:

--- 
mounts: 
    web_mounts: 
    - { source: "nfs.local:/nfs/web1", dest: "/web1", opts: "rw,noatime" } 
    - { source: "nfs.local:/nfs/web2", dest: "/web2", opts: "rw,noatime" } 
    perl_mounts: 
    - { source: "nfs.local:/nfs/perl1", dest: "/perl1", opts: "rw,noatime" } 
    - { source: "nfs.local:/nfs/perl2", dest: "/perl2", opts: "rw,noatime" } 

そして、このようなアクセスdictの要素:「nfs_groupが未定義である」エラーについては

- name: Create fstab entries 
    mount: fstab=nfs state=present opts="{{ item.opts }}" src="{{ item.source }}" name="{{ item.dest }}" 
    with_items: "{{ mounts[nfs_group] }}" 

、あなたが正しく役割を呼び出すことを確認 - 「自分の役割名は「nfs_mounts」であり、あなたのトップレベルの脚本は、役割を適用しますウェブ "。

+0

素晴らしい作品です、ありがとうございます! – luckytaxi

関連する問題