web-dev-qa-db-fra.com

Comment installer Ansible 2.9+ sur Ubuntu 18.04 et utiliser Python3?

J'essaie d'installer minimal ansile 2.9.x sur Ubuntu BIONIC (18.04 LTS).

L'objectif final est de créer une nouvelle image disque (à l'aide de Packer) sur chaque commit et de vouloir que le processus soit aussi rapide que possible.

Utilisation par défaut Ubuntu Ansible

Par défaut Ansible In Bionic est 2.5.x .

Ceci est trop vieux, tous les scripts ansibles sont écrits pour 2,9 ans et plus.

En utilisant un PPA officiel

En utilisant moyen recommandé d'installer suggère d'ajouter une ligne suivante à /etc/apt/sources.list:

deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main

et exécuter des commandes suivantes:

$ Sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
$ Sudo apt update
$ Sudo apt install ansible

mais cela nécessite toujours des paquets Python2:

$ Sudo apt install ansible
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python python-asn1crypto
  python-cffi-backend python-crypto python-cryptography python-enum34 python-httplib2
  python-idna python-ipaddress python-jinja2 python-markupsafe python-minimal
  python-paramiko python-pkg-resources python-pyasn1 python-setuptools python-six
  python-yaml python2.7 python2.7-minimal sshpass
Suggested packages:
  python-doc python-tk python-crypto-doc python-cryptography-doc
  python-cryptography-vectors python-enum34-doc python-jinja2-doc python-gssapi
  python-setuptools-doc python2.7-doc binutils binfmt-support
The following NEW packages will be installed:
  ansible libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python
  python-asn1crypto python-cffi-backend python-crypto python-cryptography python-enum34
  python-httplib2 python-idna python-ipaddress python-jinja2 python-markupsafe
  python-minimal python-paramiko python-pkg-resources python-pyasn1 python-setuptools
  python-six python-yaml python2.7 python2.7-minimal sshpass
0 upgraded, 25 newly installed, 0 to remove and 33 not upgraded.
Need to get 11.3 MB of archives.
After this operation, 83.3 MB of additional disk space will be used.
Do you want to continue? [Y/n]

Utilisant pip

Ceci est mon approche actuelle, mais en installant Pip3, puis Installation ansite via PIP est une autre étape supplémentaire:

$ Sudo apt install python3-pip
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  binutils binutils-common binutils-x86-64-linux-gnu build-essential cpp cpp-7 dh-python dpkg-dev fakeroot g++ g++-7 gcc gcc-7 gcc-7-base libalgorithm-diff-Perl
  libalgorithm-diff-xs-Perl libalgorithm-merge-Perl libasan4 libatomic1 libbinutils libc-dev-bin libc6-dev libcc1-0 libcilkrts5 libdpkg-Perl libexpat1-dev libfakeroot
  libfile-fcntllock-Perl libgcc-7-dev libgomp1 libisl19 libitm1 liblsan0 libmpc3 libmpx2 libpython3-dev libpython3.6-dev libquadmath0 libstdc++-7-dev libtsan0 libubsan0
  linux-libc-dev make manpages-dev python-pip-whl python3-crypto python3-dev python3-distutils python3-keyring python3-keyrings.alt python3-lib2to3
  python3-secretstorage python3-setuptools python3-wheel python3-xdg python3.6-dev
Suggested packages:
  binutils-doc cpp-doc gcc-7-locales debian-keyring g++-multilib g++-7-multilib gcc-7-doc libstdc++6-7-dbg gcc-multilib autoconf automake libtool flex bison gdb gcc-doc
  gcc-7-multilib libgcc1-dbg libgomp1-dbg libitm1-dbg libatomic1-dbg libasan4-dbg liblsan0-dbg libtsan0-dbg libubsan0-dbg libcilkrts5-dbg libmpx2-dbg libquadmath0-dbg
  glibc-doc bzr libstdc++-7-doc make-doc python-crypto-doc gnome-keyring libkf5wallet-bin gir1.2-gnomekeyring-1.0 python-secretstorage-doc python-setuptools-doc
The following NEW packages will be installed:
  binutils binutils-common binutils-x86-64-linux-gnu build-essential cpp cpp-7 dh-python dpkg-dev fakeroot g++ g++-7 gcc gcc-7 gcc-7-base libalgorithm-diff-Perl
  libalgorithm-diff-xs-Perl libalgorithm-merge-Perl libasan4 libatomic1 libbinutils libc-dev-bin libc6-dev libcc1-0 libcilkrts5 libdpkg-Perl libexpat1-dev libfakeroot
  libfile-fcntllock-Perl libgcc-7-dev libgomp1 libisl19 libitm1 liblsan0 libmpc3 libmpx2 libpython3-dev libpython3.6-dev libquadmath0 libstdc++-7-dev libtsan0 libubsan0
  linux-libc-dev make manpages-dev python-pip-whl python3-crypto python3-dev python3-distutils python3-keyring python3-keyrings.alt python3-lib2to3 python3-pip
  python3-secretstorage python3-setuptools python3-wheel python3-xdg python3.6-dev
0 upgraded, 57 newly installed, 0 to remove and 33 not upgraded.
Need to get 85.3 MB of archives.
After this operation, 248 MB of additional disk space will be used.
Do you want to continue? [Y/n]

... qui ajoute du temps inutile au processus d'emballeur :(

Toute astuce?

Ubuntu 18.04 est livré avec Python3 déjà installé et ansible peut être facilement configuré pour utiliser Python3. Est-ce que quelqu'un sait comment installer Ansible 2.9 sans qu'il soit nécessaire d'installer Python2 ou Pip3?

4
Ikar Pohorský

Comme mentionné sur le problème , il est actuellement recommandé aux utilisateurs d'Ubuntu d'utiliser le référentiel Debian. Vous pouvez le télécharger directement ici et installer le fichier deb paquet utilisant

Sudo apt-get install ./ansible_x.y.z_all.deb

Cela va installer une manière sans installer python2. J'ai testé avec succès cela sur Ubuntu 19.10.

1