Как установить Ansible на CentOS8 - PullRequest
0 голосов
/ 26 сентября 2019

Я пытаюсь установить ansible на CentOS 8, но безуспешно. После поиска в Google я выполнил следующие шаги

yum install python3-pip
pip3 install ansible

, но он показывает следующий вывод и никакой доступной информации нет

[root@okd1 ~]# pip3 install ansible
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.
Requirement already satisfied: ansible in ./.local/lib/python3.6/site-packages
Requirement already satisfied: jinja2 in ./.local/lib/python3.6/site-packages (from ansible)
Requirement already satisfied: PyYAML in /usr/lib64/python3.6/site-packages (from ansible)
Requirement already satisfied: cryptography in /usr/lib64/python3.6/site-packages (from ansible)
Requirement already satisfied: MarkupSafe>=0.23 in ./.local/lib/python3.6/site-packages (from jinja2->ansible)
Requirement already satisfied: idna>=2.1 in /usr/lib/python3.6/site-packages (from cryptography->ansible)
Requirement already satisfied: asn1crypto>=0.21.0 in /usr/lib/python3.6/site-packages (from cryptography->ansible)
Requirement already satisfied: six>=1.4.1 in /usr/lib/python3.6/site-packages (from cryptography->ansible)
Requirement already satisfied: cffi!=1.11.3,>=1.7 in /usr/lib64/python3.6/site-packages (from cryptography->ansible)
Requirement already satisfied: pycparser in /usr/lib/python3.6/site-packages (from cffi!=1.11.3,>=1.7->cryptography->ansible)

я попытался загрузить и установить вручную, но все равно безуспешно

curl -o ansible.rpm https://releases.ansible.com/ansible/rpm/release/epel-7-x86_64/ansible-2.8.5-1.el7.ans.noarch.rpm

[root@okd1 ~]# yum install ansible.rpm
Last metadata expiration check: 0:09:14 ago on Wed 25 Sep 2019 05:39:22 PM EDT.
Error: 
 Problem: conflicting requests
  - nothing provides python-setuptools needed by ansible-2.8.5-1.el7.ans.noarch
  - nothing provides python-six needed by ansible-2.8.5-1.el7.ans.noarch
  - nothing provides PyYAML needed by ansible-2.8.5-1.el7.ans.noarch
  - nothing provides python-jinja2 needed by ansible-2.8.5-1.el7.ans.noarch
  - nothing provides python-paramiko needed by ansible-2.8.5-1.el7.ans.noarch
  - nothing provides python2-cryptography needed by ansible-2.8.5-1.el7.ans.noarch
  - nothing provides sshpass needed by ansible-2.8.5-1.el7.ans.noarch
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

, затем попытался развернуть эти пакеты, но безуспешно

[root@okd1 ~]# pip3 install python-setuptools
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.
Collecting python-setuptools
  Could not find a version that satisfies the requirement python-setuptools (from versions: )
No matching distribution found for python-setuptools
[root@okd1 ~]# 
[root@okd1 ~]# pip2 install python-setuptools
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip2 install --user` instead.
Collecting python-setuptools
  Could not find a version that satisfies the requirement python-setuptools (from versions: )
No matching distribution found for python-setuptools

1 Ответ

0 голосов
/ 26 сентября 2019

Вы видите одно предупреждение, к которому следует относиться очень серьезно, если вы не хотите уничтожать файлы, которые были установлены с помощью пакетов yum.

Запуск установки pip с привилегиями root, как правило, не очень хорошая идея.Вместо этого попробуйте pip3 install --user.

Я предлагаю попробовать использовать virtualenv.Использование virtualenv снижает вероятность уничтожения существующей установки и позволяет использовать разные версии пакетов для каждого virtualenv.Просто не забудьте активировать вашу virtualenv перед установкой в ​​нее pip.

К сожалению, у Ansible есть небольшая проблема (по крайней мере, когда я ее использовал в прошлый раз): она не сможет устанавливать пакеты, если вы используетеvirtualenv, который не включает пакеты системного сайта, поэтому я не уверен на 100%, что вы добьетесь успеха.

Я постараюсь рассказать вам следующее: 1.) установить virtualenv (либо с yum, либо с pipустановить, но для того, чтобы ничего не уничтожить в существующей установке, вы должны использовать pip install с опцией --user) 2.) создать virtualenv для python3 с включенными пакетами системного сайта, так как у вас возникнут проблемы с ansible и установкой пакетов в противном случае3.) включите ваш virtualenv (не забывайте об этом!) 4.) Убедитесь, что вы действительно включили свой virtualenv 5.) Установите pip install ansible с опцией -U

Попробуйте ansible и укажите путь к питонуисполняемый файл вашей virtualenv с настройкой ansible_python_interpreter для ansible (https://docs.ansible.com/ansible/latest/reference_appendices/interpreter_discovery.html) Cвыбор python-setuptools Вы можете попробовать использовать virtualenv, чтобы избежать конфликтов с существующими пакетами.

Вы можете попробовать что-то вроде:

sudo pip install --user virtualenv # или установить virtualenv с помощью yum, если знаетеимя пакета.

затем

virtualenv -p $(which python3) /root/ansiblevenv --system-site-packages

теперь активируйте virutalenv

. /root/ansiblevenv/bin/activate # не забывайте пробел между.и /

Теперь проверьте, что активный питон является одним из virtualenv

type python

, вы должны увидеть /root/ansiblevenv/bin/python вместо, если 'usr / bin /python 'если нет virtualenv не включен должным образом

Теперь обновите пип (на всякий случай)

pip install -U pip

и попробуйте установить ansible

pip install -U ansible

...