O CentOS 8 nem sempre vem com o Python pré-instalado e, portanto, o Ansible falhará na execução na máquina remota até que seja instalado. No entanto, em um Chicken/Egg clássico, você não pode usar o dnf
módulo Ansible para instalar o Python.
Eu tenho usado:
- name: Install Python 3
raw: dnf -y install python3
No entanto, o problema com isso é que eu tenho que definir changed_when: false
ou ele sempre retornará um estado alterado. Eu gostaria que o estado fosse informado corretamente, se possível.
Descobri, easy_install
no entanto, que isso parece lidar apenas com bibliotecas Python, e não com o próprio Python. Existe uma maneira interna de lidar com isso ou é raw:
a única opção?
Sim, o
raw
módulo é a maneira preferida de instalar o Python com o Ansible. Você também pode incluir alguns outros pacotes necessários para o Ansible:easy_install
depende do Python. Não há como contornarraw
quando o Python não está presente. Normalmente eu uso essaraw
tarefa como parte de um manual de inicialização especial executado apenas uma vez. Outra razão para definir essa tarefa fora das outras funções e execuções é que você não pode usar a coleta de fatos quando o Python não estiver presente no sistema de destino.