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


24

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

state = link

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

私もsrc=/etc/nginx/sites-enabled代わりに使用してみましたpathが、これについての明確な例をウェブ上で見つけることができないようです。

仕様:

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

回答:


35

ドキュメントから:

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

あなたは使用する必要があるsrcdest使用した場合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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.