AT-x230-10GT を買ったのでAnsible管理しようと思ったものの、サンプルコードが少なすぎたので書きました。

専用モジュールのドキュメント

下準備

Dockerの docker.io/library/python:bookworm を使っているので、最低限のPython3は入っている前提

# ansible-pylibsshのビルドに必要なパッケージ
apt update --yes
apt install libssh-dev --yes

# Ansible本体とnetwork_cli用のSSHモジュール
# 以前はparamikoが使われていたが、最近はansible-pylibsshを使うらしい
pip3 install ansible-core ansible-pylibssh
# awplusモジュールはnetwork_cliに依存しているのでansible.netcommonも入れる
ansible-galaxy collection install ansible.netcommon alliedtelesis.awplus

最低限のPlaybook

  • inventory
all:
  hosts:
    x230:
      ansible_user: manager
      ansible_host: 192.168.11.22
  • playbook
- hosts: x230
  tasks:
    # お試しでホスト名を設定する
    - name: Set hostname.
      alliedtelesis.awplus.awplus_system:
        hostname: x230
      become: true  # cli操作で言う所のenableに相当する

    # モジュールが設定するのはrunning-configなので、随時保存する
    - name: Save config.
      alliedtelesis.awplus.awplus_config:
        save_when: modified   # running-configとstartup-configに差分があれば保存
      become: true
  vars:
    # awplusモジュールはnetwork_cliのconnectionが必須
    ansible_connection: ansible.netcommon.network_cli
    # OSは普通自動で検知してくれるらしい。検知してくれなかったので指定した
    ansible_network_os: alliedtelesis.awplus.awplus 

おわりに

ググってもサンプルほとんど出なかったので誰も使ってない説あった