Каков правильный синтаксис для создания символических ссылок с помощью ansible? Я создаю виртуальную среду Vagrant и запускаю ansible в качестве поставщика. Все работает отлично, пока я не пытаюсь сделать символическую ссылку на файл конфигурации nginx моего сайта из sites-enabled. Вот что я пробовал.
- 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 не удалось успешно завершить. Любой вывод об ошибке должен быть виден выше. Пожалуйста, исправьте эти ошибки и попробуйте еще раз.
Я также пробовал использовать src=/etc/nginx/sites-enabled
instead of, path
но не могу найти в Интернете точного примера.
Характеристики:
- OSX Маверикс
- бродяга 1.6.3
- VirtualBox 4.3
- nginx 1.6.0
- ансибл 1.6.2
- убунту 14.04
решение1
Отдокументация:
источник, путь к файлу для ссылки (применимо только к state=link). Принимает абсолютные, относительные и несуществующие пути. Относительные пути не расширяются.
Вам нужно использовать src
and dest
при использовании state=link
, а не path
. Вам также нужно поменять местами источник и место назначения, которые, похоже, поменялись местами (предполагая, что вы действительно хотите ссылаться на sites-available
from 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