Ansible シンボリックリンクの適切な構文

Ansible シンボリックリンクの適切な構文

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と を使用する必要があります。また、ソースと宛先を逆にする必要がありますが、これは逆の順序になっているようです (からにリンクすることを想定)。はリンク先のパスで、はシンボリックリンクを作成する場所です。deststate=linkpathsites-availablesites-enabledsrcdest

- 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

関連情報