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
代わりに試してみましたが、path
Webで明確な例が見つからないようです。
メガネ:
- OSXマーベリックス
- ワンダラー1.6.3
- バーチャルボックス 4.3
- nginx 1.6.0
- アンセボ1.6.2
- Ubuntu 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