てくなべ (tekunabe)

ansible / network / automation / 学習の記録

[Ansible] 「つまずき Ansible 【Part30】Ansible 3.0.0b1 を少し探る」ふりかえり

はじめに

2021/02/07 に、YouTube Live で「つまずき Ansible 【Part30】Ansible 3.0.0b1 を少し探る」という配信をしました。

実際に作業しながら(ときには)エラーと戦って進めるシリーズです。

今回は、まだベータですが先日リリースされた Ansible 3.0.0b1 を少し探ります。

connpass.com

  • 環境
    • Ansible 3.0.0b1

参考: [Ansible] Ansible 2.10 の次は 3.0.0 - てくなべ (tekunabe)


動画

youtu.be

  • 0:00 イントロダクション
  • 1:40 概要の概要
  • 4:50 ポーティングガイド
  • 8:55 インストール・バージョン確認
  • 13:45 collection の確認
  • 18:30 Playbook の実行
  • 27:15 おわりに

■ やったこと

資料

インストール

まだベータバージョンなので、バージョン指定が必要。

(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 では、ansibleansible-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  

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構成