はじめに
Ansible は、Ansible 本体の標準モジュールの他に、Collection という形式でも配布されています。
例えば、ios_*
モジュールは cisco.ios
collection 経由で配布されてます。
先日 cisco.ios
collection 0.0.3 がリリースされ、4つモジュールが追加されました。
この記事では追加されたモジュールについて、ごく簡単ではありますがご紹介します。
追加モジュール
いずれも、Netwrok Resource Module です。
cisco.ios.ios_acl_interfaces
cisco.ios/ios_acl_interfaces.py at 0.0.3 · ansible-collections/cisco.ios · GitHub
ACL をインターフェースに適用するモジュールです。
- Example (元)
- name: Merge module attributes of given access-groups cisco.ios.ios_acl_interfaces: config: - name: GigabitEthernet0/1 access_groups: - afi: ipv4 acls: - name: 110 direction: in - name: 123 direction: out - afi: ipv6 acls: - name: test_v6 direction: out - name: temp_v6 direction: in - name: GigabitEthernet0/2 access_groups: - afi: ipv4 acls: - name: 100 direction: in state: merged
cisco.ios.ios_acls
cisco.ios/ios_acls.py at 0.0.3 · ansible-collections/cisco.ios · GitHub
ACL を定義するモジュールです。コマンドのオプションが多いのでモジュールのオプションも多いですね。
- Example (元)
- name: Merge provided configuration with device configuration cisco.ios.ios_acls: config: - afi: ipv4 acls: - name: std_acl acl_type: standard aces: - grant: deny source: address: 192.168.1.200 - grant: deny source: address: 192.168.2.0 wildcard_bits: 0.0.0.255 - name: 110 aces: - sequence: 10 protocol_options: icmp: traceroute: true - grant: deny protocol_options: tcp: ack: true source: host: 198.51.100.0 destination: host: 198.51.110.0 port_protocol: eq: telnet - name: test acl_type: extended aces: - grant: deny protocol_options: tcp: fin: true source: address: 192.0.2.0 wildcard_bits: 0.0.0.255 destination: address: 192.0.3.0 wildcard_bits: 0.0.0.255 port_protocol: eq: www option: traceroute: true ttl: eq: 10 - name: 123 aces: - grant: deny protocol_options: tcp: ack: true source: address: 198.51.100.0 wildcard_bits: 0.0.0.255 destination: address: 198.51.101.0 wildcard_bits: 0.0.0.255 port_protocol: eq: telnet tos: service_value: 12 - grant: deny protocol_options: tcp: ack: true source: address: 192.0.3.0 wildcard_bits: 0.0.0.255 destination: address: 192.0.4.0 wildcard_bits: 0.0.0.255 port_protocol: eq: www dscp: ef ttl: lt: 20 - afi: ipv6 acls: - name: R1_TRAFFIC aces: - grant: deny protocol_options: tcp: ack: true source: any: true port_protocol: eq: www destination: any: true port_protocol: eq: telnet dscp: af11 state: merged
cisco.ios.ios_ospfv2
cisco.ios/ios_ospfv2.py at 0.0.3 · ansible-collections/cisco.ios · GitHub
OSPFv4 を設定するモジュールです。細かいオプションも指定できるようです。
- Example (元)
- name: Merge provided OSPF V2 configuration cisco.ios.ios_ospfv2: config: processes: - process_id: 1 max_metric: router_lsa: true on_startup: time: 110 areas: - area_id: '5' capability: true authentication: enable: true - area_id: '10' authentication: message_digest: true nssa: default_information_originate: metric: 10 translate: suppress-fa default_cost: 10 filter_list: - name: test_prefix_in direction: in - name: test_prefix_out direction: out network: address: 198.51.100.0 wildcard_bits: 0.0.0.255 area: 5 default_information: originate: true - process_id: 200 vrf: blue domain_id: ip_address: address: 192.0.3.1 max_metric: router_lsa: true on_startup: time: 100 auto_cost: reference_bandwidth: 4 areas: - area_id: '10' capability: true distribute_list: acls: - name: 10 direction: out - name: 123 direction: in state: merged
cisco.ios.ios_static_routes
cisco.ios/ios_static_routes.py at 0.0.3 · ansible-collections/cisco.ios · GitHub
スタティックルートを設定するモジュールです。
ios_static_route
モジュール(末尾 s
なし)の後継版です。
- Example (元)
- name: Merge provided configuration with device configuration cisco.ios.ios_static_routes: config: - vrf: blue address_families: - afi: ipv4 routes: - dest: 192.0.2.0/24 next_hops: - forward_router_address: 192.0.2.1 name: merged_blue tag: 50 track: 150 - address_families: - afi: ipv4 routes: - dest: 198.51.100.0/24 next_hops: - forward_router_address: 198.51.101.1 name: merged_route_1 distance_metric: 110 tag: 40 multicast: true - forward_router_address: 198.51.101.2 name: merged_route_2 distance_metric: 30 - forward_router_address: 198.51.101.3 name: merged_route_3 - afi: ipv6 routes: - dest: 2001:DB8:0:3::/64 next_hops: - forward_router_address: 2001:DB8:0:3::2 name: merged_v6 tag: 105 state: merged
これらモジュールを利用するには?
cisco.ios
collection はAnsible 2.9.10 以上 2.11 未満で利用できるようです。
Ansible versions: >=2.9.10,<2.11
まず、 ansible-galaxy collection install cisco.ios
でインストールします。
モジュール名を cisco.ios_acls
のように指定して呼び出します。詳細は、公式ドキュメントをご参照ください。
Using collections — Ansible Documentation
おわりに
これまでは Ansible 本体のバージョンアップの際の changelog を見れば、この手の情報は追えたのですが、今は collection の情報をウォッチする必要があります。
気になる方は Collection もチェックすることをおすすめします。
Ansible Galaxy にログインし、対象の Collection のFollow Author ボタンを押してフォローすると、更新をメールや右上のアイコンで通知してくれます。
[2020/06/23 追記] 1.0.0 がリリースされました。0.0.3 からモジュールは追加されていませんが、ドキュメントが整備されました。