CentOS 8 не всегда поставляется с предустановленным Python, поэтому Ansible не сможет работать на удаленном компьютере, пока он не будет установлен. Однако в классическом курице / яйце вы не можете использовать Ansible. dnf
модуль для установки Python.
Я использовал:
- name: Install Python 3
raw: dnf -y install python3
Однако проблема в том, что мне нужно либо установить changed_when: false
или он всегда будет возвращать измененное состояние. Я бы хотел, чтобы о состоянии было доложено правильно, если это возможно.
я нашел easy_install
однако, похоже, это касается только библиотек Python, а не самого Python. Есть ли встроенный способ справиться с этим или есть raw:
единственный вариант?
Да, raw
module - предпочтительный способ установки Python с Ansible. Вы также можете включить некоторые другие необходимые пакеты для Ansible:
- name: Bootstrap a host without python2 installed
raw: dnf install -y python2 python2-dnf libselinux-python
easy_install
зависит от Python. Нет пути raw
когда Python отсутствует. Обычно я использую это raw
задача в рамках специального сценария начальной загрузки выполняется только один раз. Другая причина определить эту задачу вне других ролей и игр состоит в том, что вы не можете использовать сбор фактов, когда Python отсутствует в целевой системе.