はじめに
2021/02/07 に、YouTube Live で「つまずき Ansible 【Part30】Ansible 3.0.0b1 を少し探る」という配信をしました。
実際に作業しながら(ときには)エラーと戦って進めるシリーズです。
今回は、まだベータですが先日リリースされた Ansible 3.0.0b1 を少し探ります。
- 環境
- Ansible 3.0.0b1
参考: [Ansible] Ansible 2.10 の次は 3.0.0 - てくなべ (tekunabe)
動画
- 0:00 イントロダクション
- 1:40 概要の概要
- 4:50 ポーティングガイド
- 8:55 インストール・バージョン確認
- 13:45 collection の確認
- 18:30 Playbook の実行
- 27:15 おわりに
■ やったこと
資料
- 案内 Ansible-3.0.0 Schedule and Preview of 4.0.0 Schedule
- Ansible 3 Porting Guide
- https://docs.ansible.com/ansible/devel/porting_guides/porting_guide_3.html
- 所属コレクションが変更されたモジュールなどの説明
- 特に
community.general
、community.network
にいたモジュールは別のコレクションして独立したものがちらほら
- Ansible project 3.0 ロードマップ
- https://docs.ansible.com/ansible/devel/roadmap/COLLECTIONS_3_0.html
- 2021/02/16 リリース予定
インストール
まだベータバージョンなので、バージョン指定が必要。
(a300) [admin@gitlab stumble]$ pip install ansible==3.0.0b1 Collecting ansible==3.0.0b1 Using cached https://files.pythonhosted.org/packages/3e/0e/de3d605e101d7220807fa7c3234aada8b99c1277ec1a68a95b355f726b74/ansible-3.0.0b1.tar.gz ...(略)...
バージョンの確認
ansible --version
では、ansible-base
としてのバージョン 2.10.5
が表示される。
(a300) [admin@gitlab meta]$ ansible --version ansible 2.10.5 config file = None configured module search path = ['/home/admin/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /home/admin/envs/a300/lib64/python3.6/site-packages/ansible executable location = /home/admin/envs/a300/bin/ansible python version = 3.6.8 (default, Nov 16 2020, 16:55:22) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]
pip freeze
では、ansible
と ansible-base
の両方が表示される。
(a300) [admin@gitlab stumble]$ pip freeze ansible==3.0.0b1 ansible-base==2.10.5 cffi==1.14.4 cryptography==3.3.1 Jinja2==2.11.3 MarkupSafe==1.1.1 packaging==20.9 pycparser==2.20 pyparsing==2.4.7 PyYAML==5.4.1 six==1.15.0
同梱コレクションの確認
ansible-galaxy collection list
# /home/admin/envs/a300/lib/python3.6/site-packages/ansible_collections Collection Version ----------------------------- ------- amazon.aws 1.3.0 ansible.netcommon 1.5.0 ansible.posix 1.1.1 ansible.utils 2.0.0 ansible.windows 1.3.0 arista.eos 1.3.0 awx.awx 17.0.1 azure.azcollection 1.4.0 check_point.mgmt 2.0.0 chocolatey.chocolatey 1.0.2 cisco.aci 2.0.0 cisco.asa 1.0.4 cisco.intersight 1.0.10 cisco.ios 1.3.0 cisco.iosxr 1.2.1 cisco.meraki 2.2.0 cisco.mso 1.1.0 cisco.nso 1.0.3 cisco.nxos 1.4.0 cisco.ucs 1.6.0 cloudscale_ch.cloud 2.0.0 community.aws 1.3.0 community.azure 1.0.0 community.crypto 1.4.0 community.digitalocean 1.0.0 community.docker 1.2.1 community.fortios 1.0.0 community.general 2.0.0 community.google 1.0.0 community.grafana 1.1.0 community.hashi_vault 1.0.0 community.hrobot 1.1.0 community.kubernetes 1.1.1 community.kubevirt 1.0.0 community.libvirt 1.0.0 community.mongodb 1.2.0 community.mysql 1.2.0 community.network 2.0.0 community.okd 1.0.1 community.postgresql 1.1.0 community.proxysql 1.0.0 community.rabbitmq 1.0.1 community.routeros 1.1.0 community.skydive 1.0.0 community.sops 1.0.3 community.vmware 1.7.0 community.windows 1.2.0 community.zabbix 1.2.0 containers.podman 1.4.1 cyberark.conjur 1.1.0 cyberark.pas 1.0.5 dellemc.openmanage 3.0.0 dellemc.os10 1.1.1 dellemc.os6 1.0.6 dellemc.os9 1.0.3 f5networks.f5_modules 1.7.1 fortinet.fortimanager 2.0.1 fortinet.fortios 1.1.8 frr.frr 1.0.3 gluster.gluster 1.0.1 google.cloud 1.0.1 hetzner.hcloud 1.2.1 ibm.qradar 1.0.3 infinidat.infinibox 1.2.4 inspur.sm 1.1.2 junipernetworks.junos 1.3.0 kubernetes.core 1.1.1 mellanox.onyx 1.0.0 netapp.aws 20.9.0 netapp.elementsw 20.11.0 netapp.ontap 21.1.1 netapp_eseries.santricity 1.1.0 netbox.netbox 2.0.0 ngine_io.cloudstack 2.0.0 ngine_io.exoscale 1.0.0 ngine_io.vultr 1.1.0 openstack.cloud 1.2.1 openvswitch.openvswitch 1.1.0 ovirt.ovirt 1.3.0 purestorage.flasharray 1.5.1 purestorage.flashblade 1.4.0 sensu.sensu_go 1.8.0 servicenow.servicenow 1.0.3 splunk.es 1.0.2 t_systems_mms.icinga_director 1.13.0 theforeman.foreman 1.5.1 vyos.vyos 1.1.1 wti.remote 1.0.1 # /home/admin/envs/a300/lib64/python3.6/site-packages/ansible_collections Collection Version ----------------------------- ------- amazon.aws 1.3.0 ansible.netcommon 1.5.0 ansible.posix 1.1.1 ansible.utils 2.0.0 ansible.windows 1.3.0 arista.eos 1.3.0 awx.awx 17.0.1 azure.azcollection 1.4.0 check_point.mgmt 2.0.0 chocolatey.chocolatey 1.0.2 cisco.aci 2.0.0 cisco.asa 1.0.4 cisco.intersight 1.0.10 cisco.ios 1.3.0 cisco.iosxr 1.2.1 cisco.meraki 2.2.0 cisco.mso 1.1.0 cisco.nso 1.0.3 cisco.nxos 1.4.0 cisco.ucs 1.6.0 cloudscale_ch.cloud 2.0.0 community.aws 1.3.0 community.azure 1.0.0 community.crypto 1.4.0 community.digitalocean 1.0.0 community.docker 1.2.1 community.fortios 1.0.0 community.general 2.0.0 community.google 1.0.0 community.grafana 1.1.0 community.hashi_vault 1.0.0 community.hrobot 1.1.0 community.kubernetes 1.1.1 community.kubevirt 1.0.0 community.libvirt 1.0.0 community.mongodb 1.2.0 community.mysql 1.2.0 community.network 2.0.0 community.okd 1.0.1 community.postgresql 1.1.0 community.proxysql 1.0.0 community.rabbitmq 1.0.1 community.routeros 1.1.0 community.skydive 1.0.0 community.sops 1.0.3 community.vmware 1.7.0 community.windows 1.2.0 community.zabbix 1.2.0 containers.podman 1.4.1 cyberark.conjur 1.1.0 cyberark.pas 1.0.5 dellemc.openmanage 3.0.0 dellemc.os10 1.1.1 dellemc.os6 1.0.6 dellemc.os9 1.0.3 f5networks.f5_modules 1.7.1 fortinet.fortimanager 2.0.1 fortinet.fortios 1.1.8 frr.frr 1.0.3 gluster.gluster 1.0.1 google.cloud 1.0.1 hetzner.hcloud 1.2.1 ibm.qradar 1.0.3 infinidat.infinibox 1.2.4 inspur.sm 1.1.2 junipernetworks.junos 1.3.0 kubernetes.core 1.1.1 mellanox.onyx 1.0.0 netapp.aws 20.9.0 netapp.elementsw 20.11.0 netapp.ontap 21.1.1 netapp_eseries.santricity 1.1.0 netbox.netbox 2.0.0 ngine_io.cloudstack 2.0.0 ngine_io.exoscale 1.0.0 ngine_io.vultr 1.1.0 openstack.cloud 1.2.1 openvswitch.openvswitch 1.1.0 ovirt.ovirt 1.3.0 purestorage.flasharray 1.5.1 purestorage.flashblade 1.4.0 sensu.sensu_go 1.8.0 servicenow.servicenow 1.0.3 splunk.es 1.0.2 t_systems_mms.icinga_director 1.13.0 theforeman.foreman 1.5.1 vyos.vyos 1.1.1 wti.remote 1.0.1
- 参考
- Ansible 3.0.0 同梱コレクション
- Ansible 2.10.7 同梱コレクション
Playbook の実行
以下の Playbook を利用。
--- - hosts: ios gather_facts: false tasks: - name: show ios_command: # cisco.ios.ios_command: # もちろん FQCN でも可 commands: - show interfaces register: res_show - name: debug debug: msg: "{{ res_show.stdout_lines[0] }}"
paramiko
のインストール。
pip install paramiko
実行結果
(a300) [admin@gitlab stumble]$ ansible-playbook -i inventory.ini test.yml PLAY [ios] ********************************************************************* TASK [show] ******************************************************************** ok: [ios01] TASK [debug] ******************************************************************* ok: [ios01] => { "msg": [ "GigabitEthernet0/0 is up, line protocol is up ", " Hardware is iGbE, address is 5254.0001.xxxx (bia 5254.0001.xxx)", " Internet address is 192.168.1.11/24", " MTU 1500 bytes, BW 1000000 Kbit/sec, DLY 10 usec, ", " reliability 255/255, txload 1/255, rxload 1/255", " Encapsulation ARPA, loopback not set", " Keepalive set (10 sec)", " Auto Duplex, Auto Speed, link type is auto, media type is RJ45", " output flow-control is unsupported, input flow-control is unsupported", " ARP type: ARPA, ARP Timeout 04:00:00", " Last input 00:00:00, output ...(略)...
Part31にむけて
以下のネタを検討中です。気が向いたものをやります。 connpass申込時のアンケートでいただいたものも含めています。
- Katakoda Ansible 101
- connection: local ななにか
- Windows
- cli_parse モジュール(Part15 の続き)
- Ansible 2.10 関連
- Ansible 3.0.0 関連
- モジュールのテスト
- AWXとの共存を念頭に入れたDirectory構成