web-dev-qa-db-ja.com

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

ansibleを使用してシンボリックリンクを作成するための適切な構文は何ですか? Vagrant仮想環境を作成して、プロビジョニング担当者としてansibleを実行しています。サイトが有効になっているサイトから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

-名前:example.dev.confへのシンボリックリンク

ファイル:path =/etc/nginx/sites-enabled/example.dev.conf

状態=リンク

^ Ansibleは正常に完了できませんでした。エラー出力は上に表示されます。これらのエラーを修正して、もう一度お試しください。

また、pathの代わりにsrc=/etc/nginx/sites-enabledを使用してみましたが、Webでこれの決定的な例を見つけることができないようです。

スペック:

  • OSXマーベリックス
  • 浮浪者1.6.3
  • VirtualBox 4.3
  • nginx 1.6.0
  • ansible 1.6.2
  • ubuntu 14.04
24
jeanpier_re

ドキュメント から:

src、リンクするファイルのパス(state = linkにのみ適用)。絶対パス、相対パス、存在しないパスを受け入れます。相対パスは展開されません。

srcではなくstate=linkを使用する場合は、destおよび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
35
Chris Down