Ansible シンボリックリンクの正しい構文

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へのシンボリックリンク

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

ステータス=リンク

^ Ansibleを正常に完了できませんでした。すべてのエラー出力は上に表示する必要があります。エラーを修正してもう一度やり直してください。

src=/etc/nginx/sites-enabled代わりに試してみましたが、pathWebで明確な例が見つからないようです。

メガネ:

  • OSXマーベリックス
  • ワンダラー1.6.3
  • バーチャルボックス 4.3
  • nginx 1.6.0
  • アンセボ1.6.2
  • Ubuntu 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

関連情報