#ansible #yaml
Вопрос:
Кто-нибудь может помочь мне исправить этот сборник пьес:
---
- name: Deploying httpd container using GIT Repo for web content - part3
hosts: Docker-hosts
tasks:
- name: Correct python version selected
community.general.alternatives:
name: python
path: /usr/bin/python3
- name: Install bottle python package
pip:
name: docker-py
- name: pulling docker image
docker_image:
name: httpd
source: pull
- name: creating a container
docker_container:
name: webos
image: httpd
volumes:
- /root/ansible1/index.html:/usr/local/apache2/htdocs/
ports:
- "82:80"
state: started
detach: yes
Я получаю эту общую синтаксическую ошибку:
ERROR! couldn't resolve module/action 'community.general.alternatives'. This often indicates a misspelling, missing collection, or incorrect module path.
The error appears to be in '/etc/ansible/playbooks/Install_Docker_on_Centos8-p3_updated.yml': line 5, column 5, but may
be elsewhere in the file depending on the exact syntax problem.
The offending line appears to be:
tasks:
- name: Correct python version selected
^ here
Я предполагаю, что это проблема с пространствами, но я не нахожу проблемы
, спасибо
Комментарии:
1. из вашего поста я вижу проблему с пробелами. Вы даете только два пробела, а не 4 или 5 пробелов в аргументе под именем вашего модуля.
2. Хотя интервал нетрадиционен, я не думаю, что это вызывает эту проблему. Какова версия Ansible?
3. Очень вероятно, что коллекция
community.general
отсутствует. Видетьshell> ansible-galaxy collection list
. Если коллекция действительно отсутствует, установите ееshell> ansible-galaxy collection install community.general
4. Привет, Офер Вессбойм, добро пожаловать в SO. Вопрос, который часто кусает новоприбывших в анзибль, что
community.general.alternatives:
модуль стиль вlatest
документации, соответственно, только за последний анзибль версии, и поскольку вы не включили версию, которую вы используете, мы не можем сказать точно, но скорее всего, это 2.9 и старше, а значит, вы должны продолжать использовать модули, которые поставляются с установленной версии5. Моя версия ansible 2.9.23. Я попытался перечислить свою коллекцию по shell> список коллекций ansible-galaxy и установить ее, но только что получил эту ошибку (при попытке установки): «ОШИБКА! Неизвестная ошибка при попытке вызвать Galaxy по адресу ‘ galaxy.ansible.com/api ‘: <ошибка urlopen [Errno -2] Имя или служба неизвестны>»
Ответ №1:
пожалуйста, попробуйте YAML ниже и посмотрите, работает ли он. Я исправил пробелы в файле, я думаю, что это должно сработать. Если проблема все еще сохраняется, пожалуйста, поделитесь версией Ansible, которую вы используете в настоящее время.
-
hosts: Docker-hosts
name: "Deploying httpd container using GIT Repo for web content - part3"
tasks:
-
community.general.alternatives:
name: python
path: /usr/bin/python3
name: "Correct python version selected"
-
name: "Install bottle python package"
pip:
name: docker-py
-
docker_image:
name: httpd
source: pull
name: "pulling docker image"
-
docker_container:
detach: true
image: httpd
name: webos
ports:
- "82:80"
state: started
volumes:
- "/root/ansible1/index.html:/usr/local/apache2/htdocs/"
name: "creating a container"
Комментарии:
1. это не похоже на формат YAML. Я не понимаю, почему у вас отсутствует — в начале файла и задачи не начинаются с — а также