てくなべ (tekunabe)

ansible / network automation / 学習メモ

[Ansible] Ansible 2.10 で pip install ansible --upgarade するとセットの collection もアップグレードされる

はじめに

このブログでも何度か触れましたが、Ansible 2.10 から Python のパッケージとしては、ansibleansible-base の2つができました。

ansible-base は基本機能と約70の標準モジュールです。ansibleansible-base と、元標準モジュール相当の collection のセットです。

ansible は 9月に 2.10.0 がリリースされ、10月に 2.10.1 がリリースされました。pip--upgrade するさいに、セットだったコレクションがどうなるか気になったのですが、試したところアップグレードされました。

あくまでも ansible-build-data の定義に基づくようです。

この記事では具体的なログを掲載します。


■ 事前状態 (ansible 2.10.0)

インストール済み Python パッケージの確認

% pip freeze
ansible==2.10.0
ansible-base==2.10.2
cffi==1.14.3
cryptography==3.1.1
Jinja2==2.11.2
MarkupSafe==1.1.1
packaging==20.4
pycparser==2.20
pyparsing==2.4.7
PyYAML==5.3.1
six==1.15.0

記憶が正しければ、ansible-base 2.10.2 のリリース前は、ansible 2.10.0ansible-base 2.10.1 だった気がします。

セットの collection の確認

ansible-build-dataansible-2.10.0.deps のとおりです。

(デフォルトで ~/.ansible/ansible_collection インストールされるものとは別です)

% ansible-galaxy collection list -p ~/envs/a210/lib/python3.8/site-packages/ansible_collections/

# /Users/sakana/envs/a210/lib/python3.8/site-packages/ansible_collections
Collection                Version
------------------------- -------
amazon.aws                1.2.0  
ansible.netcommon         1.2.1  
ansible.posix             1.1.1  
ansible.windows           1.0.0  
arista.eos                1.0.3  
awx.awx                   14.1.0 
azure.azcollection        1.0.0  
check_point.mgmt          1.0.6  
chocolatey.chocolatey     1.0.2  
cisco.aci                 1.0.0  
cisco.asa                 1.0.3  
cisco.intersight          1.0.8  
cisco.ios                 1.0.3  
cisco.iosxr               1.0.5  
cisco.meraki              2.0.0  
cisco.mso                 1.0.0  
cisco.nxos                1.1.0  
cisco.ucs                 1.5.0  
cloudscale_ch.cloud       1.1.0  
community.aws             1.2.0  
community.azure           1.0.0  
community.crypto          1.1.1  
community.digitalocean    1.0.0  
community.general         1.1.0  
community.grafana         1.0.0  
community.kubernetes      1.0.0  
community.libvirt         1.0.0  
community.mongodb         1.0.0  
community.mysql           1.0.0  
community.network         1.1.0  
community.proxysql        1.0.0  
community.rabbitmq        1.0.1  
community.skydive         1.0.0  
community.vmware          1.2.0  
community.windows         1.0.0  
community.zabbix          1.0.0  
containers.podman         1.2.0  
cyberark.conjur           1.0.7  
cyberark.pas              1.0.5  
dellemc.os10              1.0.1  
dellemc.os6               1.0.2  
dellemc.os9               1.0.2  
f5networks.f5_modules     1.5.0  
fortinet.fortimanager     1.0.5  
fortinet.fortios          1.0.15 
frr.frr                   1.0.3  
gluster.gluster           1.0.1  
google.cloud              1.0.0  
hetzner.hcloud            1.0.0  
ibm.qradar                1.0.3  
infinidat.infinibox       1.2.3  
junipernetworks.junos     1.1.0  
mellanox.onyx             1.0.0  
netapp.aws                20.8.0 
netapp.elementsw          20.8.0 
netapp.ontap              20.8.0 
netapp_eseries.santricity 1.0.8  
netbox.netbox             1.0.2  
ngine_io.cloudstack       1.0.1  
ngine_io.exoscale         1.0.0  
ngine_io.vultr            1.0.0  
openstack.cloud           1.1.0  
openvswitch.openvswitch   1.0.5  
ovirt.ovirt               1.1.3  
purestorage.flasharray    1.4.0  
purestorage.flashblade    1.3.0  
servicenow.servicenow     1.0.2  
splunk.es                 1.0.2  
theforeman.foreman        1.1.0  
vyos.vyos                 1.0.4  
wti.remote                1.0.1  


■ アップグレード

% pip install ansible --upgrade
Collecting ansible
  Using cached ansible-2.10.1.tar.gz (25.9 MB)
Requirement already satisfied, skipping upgrade: ansible-base<2.11,>=2.10.2 in /Users/sakana/envs/a210/lib/python3.8/site-packages (from ansible) (2.10.2)
Requirement already satisfied, skipping upgrade: jinja2 in /Users/sakana/envs/a210/lib/python3.8/site-packages (from ansible-base<2.11,>=2.10.2->ansible) (2.11.2)
Requirement already satisfied, skipping upgrade: PyYAML in /Users/sakana/envs/a210/lib/python3.8/site-packages (from ansible-base<2.11,>=2.10.2->ansible) (5.3.1)
Requirement already satisfied, skipping upgrade: cryptography in /Users/sakana/envs/a210/lib/python3.8/site-packages (from ansible-base<2.11,>=2.10.2->ansible) (3.1.1)
Requirement already satisfied, skipping upgrade: packaging in /Users/sakana/envs/a210/lib/python3.8/site-packages (from ansible-base<2.11,>=2.10.2->ansible) (20.4)
Requirement already satisfied, skipping upgrade: MarkupSafe>=0.23 in /Users/sakana/envs/a210/lib/python3.8/site-packages (from jinja2->ansible-base<2.11,>=2.10.2->ansible) (1.1.1)
Requirement already satisfied, skipping upgrade: six>=1.4.1 in /Users/sakana/envs/a210/lib/python3.8/site-packages (from cryptography->ansible-base<2.11,>=2.10.2->ansible) (1.15.0)
Requirement already satisfied, skipping upgrade: cffi!=1.11.3,>=1.8 in /Users/sakana/envs/a210/lib/python3.8/site-packages (from cryptography->ansible-base<2.11,>=2.10.2->ansible) (1.14.3)
Requirement already satisfied, skipping upgrade: pyparsing>=2.0.2 in /Users/sakana/envs/a210/lib/python3.8/site-packages (from packaging->ansible-base<2.11,>=2.10.2->ansible) (2.4.7)
Requirement already satisfied, skipping upgrade: pycparser in /Users/sakana/envs/a210/lib/python3.8/site-packages (from cffi!=1.11.3,>=1.8->cryptography->ansible-base<2.11,>=2.10.2->ansible) (2.20)
Using legacy setup.py install for ansible, since package 'wheel' is not installed.
Installing collected packages: ansible
  Attempting uninstall: ansible
    Found existing installation: ansible 2.10.0
    Uninstalling ansible-2.10.0:
      Successfully uninstalled ansible-2.10.0
    Running setup.py install for ansible ... done
Successfully installed ansible-2.10.1
WARNING: You are using pip version 20.1.1; however, version 20.2.3 is available.
You should consider upgrading via the '/Users/sakana/envs/a210/bin/python3 -m pip install --upgrade pip' command.

インストール済み Python パッケージの確認

ansible==2.10.0 だった箇所が ansible==2.10.1 になりました。

% pip freeze                                                                                    
ansible==2.10.1
ansible-base==2.10.2
cffi==1.14.3
cryptography==3.1.1
Jinja2==2.11.2
MarkupSafe==1.1.1
packaging==20.4
pycparser==2.20
pyparsing==2.4.7
PyYAML==5.3.1
six==1.15.0

セットの collection の確認

ansible-build-dataansible-2.10.1.deps のとおりです。

たとえば、cisco.ios collection は 1.0.3 から 1.1.0 になりました。

% ansible-galaxy collection list -p ~/envs/a210/lib/python3.8/site-packages/ansible_collections/

# /Users/sakana/envs/a210/lib/python3.8/site-packages/ansible_collections
Collection                Version
------------------------- -------
amazon.aws                1.2.1  
ansible.netcommon         1.3.0  
ansible.posix             1.1.1  
ansible.windows           1.0.1  
arista.eos                1.1.0  
awx.awx                   14.1.0 
azure.azcollection        1.2.0  
check_point.mgmt          1.0.6  
chocolatey.chocolatey     1.0.2  
cisco.aci                 1.0.0  
cisco.asa                 1.0.3  
cisco.intersight          1.0.8  
cisco.ios                 1.1.0  
cisco.iosxr               1.1.0  
cisco.meraki              2.0.0  
cisco.mso                 1.0.0  
cisco.nxos                1.2.0  
cisco.ucs                 1.5.0  
cloudscale_ch.cloud       1.2.0  
community.aws             1.2.1  
community.azure           1.0.0  
community.crypto          1.2.0  
community.digitalocean    1.0.0  
community.general         1.2.0  
community.grafana         1.0.0  
community.kubernetes      1.1.1  
community.libvirt         1.0.0  
community.mongodb         1.0.0  
community.mysql           1.1.0  
community.network         1.2.0  
community.proxysql        1.0.0  
community.rabbitmq        1.0.1  
community.skydive         1.0.0  
community.vmware          1.3.0  
community.windows         1.1.0  
community.zabbix          1.0.0  
containers.podman         1.3.1  
cyberark.conjur           1.0.7  
cyberark.pas              1.0.5  
dellemc.os10              1.0.1  
dellemc.os6               1.0.2  
dellemc.os9               1.0.2  
f5networks.f5_modules     1.5.0  
fortinet.fortimanager     1.0.5  
fortinet.fortios          1.0.15 
frr.frr                   1.0.3  
gluster.gluster           1.0.1  
google.cloud              1.0.1  
hetzner.hcloud            1.1.0  
ibm.qradar                1.0.3  
infinidat.infinibox       1.2.3  
junipernetworks.junos     1.1.1  
mellanox.onyx             1.0.0  
netapp.aws                20.9.0 
netapp.elementsw          20.10.0
netapp.ontap              20.10.0
netapp_eseries.santricity 1.0.8  
netbox.netbox             1.1.0  
ngine_io.cloudstack       1.0.1  
ngine_io.exoscale         1.0.0  
ngine_io.vultr            1.0.0  
openstack.cloud           1.2.0  
openvswitch.openvswitch   1.0.5  
ovirt.ovirt               1.1.4  
purestorage.flasharray    1.4.0  
purestorage.flashblade    1.3.0  
servicenow.servicenow     1.0.2  
splunk.es                 1.0.2  
theforeman.foreman        1.3.0  
vyos.vyos                 1.0.5  
wti.remote                1.0.1 


おわりに

もし、本体(ansible-base)をそのままにして、collection のみをアップグレードしたい場合は、個別に ansible-galaxy collection install するようになるのかなと思います。