Правильный синтаксис для ANSIBLE символической ссылки


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

file: path = / etc / nginx / sites-enabled / example.dev.conf

состояние = ссылка

^ Ansible не удалось завершить успешно. Любая ошибка вывода должна быть видна выше. Пожалуйста, исправьте эти ошибки и попробуйте снова.

Я также попытался использовать src=/etc/nginx/sites-enabledвместо, pathно я не могу найти точный пример этого в Интернете.

Технические характеристики:

  • OSX Mavericks
  • Бродяга 1.6.3
  • VirtualBox 4.3
  • nginx 1.6.0
  • ANSIBLE 1.6.2
  • Убунту 14.04

Ответы:


35

Из документации :

src , путь к файлу для ссылки (применяется только к состоянию = ссылка). Примет абсолютные, относительные и несуществующие пути. Относительные пути не расширены.

Вам нужно использовать, 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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.