Ansible を使用してシンボリックリンクを作成するための適切な構文は何ですか? Vagrant 仮想環境を作成し、プロビジョナーとして Ansible を実行しています。sites-enabled からサイトの nginx 構成ファイルにシンボリックリンクしようとするまで、すべて正常に動作します。試したことは次のとおりです。
- name: Create symlink to example.com
file:
path: /etc/nginx/sites-enabled/example.com
dest: /etc/nginx/sites-available/example.com
state: link
notify: nginx reload
これを実行すると、次のエラーが発生します。
エラー: YAML スクリプトの読み込み中に構文エラーが発生しました。/Users/username/project/ansible/roles/nginx/tasks/main.yml
注: エラーは実際にはこの位置より前に現れる可能性があります: 行 24、列 1
- name: example.dev.conf へのシンボリックリンク
ファイル: パス=/etc/nginx/sites-enabled/example.dev.conf
状態=リンク
^ Ansible は正常に完了できませんでした。エラー出力は上記に表示されます。これらのエラーを修正して、もう一度お試しください。
src=/etc/nginx/sites-enabled
の代わりにを使用することも試みましたpath
が、Web 上でこれに関する明確な例を見つけることができないようです。
仕様:
- OSX マーベリックス
- ヴァングラント 1.6.3
- バーチャルボックス4.3
- nginx 1.6.0
- アンシブル 1.6.2
- ウブントゥ 14.04
答え1
からドキュメント:
ソースリンク先のファイルのパス(state=link にのみ適用)。絶対パス、相対パス、存在しないパスを受け入れます。相対パスは展開されません。
を使用する場合は、 ではなくsrc
と を使用する必要があります。また、ソースと宛先を逆にする必要がありますが、これは逆の順序になっているようです (からにリンクすることを想定)。はリンク先のパスで、はシンボリックリンクを作成する場所です。dest
state=link
path
sites-available
sites-enabled
src
dest
- name: Create symlink to example.com
file: src=/etc/nginx/sites-available/example.com dest=/etc/nginx/sites-enabled/example.com state=link
notify: nginx reload