TECH PLAY

Ansible

イベント

該当するコンテンツが見つかりませんでした

マガジン

該当するコンテンツが見つかりませんでした

技術ブログ

はじめに 2026年5月14-15日(木金)に名古屋の中日ホール&カンファレンスにてクラウドネイティブ会議が開催されました。本記事では同イベントで行われた発表の中から、さくらインターネット研究所の小田知央さん(@ […]
当記事は、 日常の運用業務(NW機器設定)の自動化 により、 運用コストの削減 および 運用品質の向上  を目標に 「Ansible」 を使用し、様々なNW機器設定を自動化してみようと 試みた記事です。 Ansibleは、OSS版(AWX)+OSS版(Ansible)を使用しております。   Fortigateの「Objects-アドレス」の登録/変更/削除を実施してみた 事前設定 Templateを作成し、インベントリーと認証情報を設定する。 インベントリー:対象機器(ホスト)の接続先/接続方法/使用プラグインを設定する。 ansible_host: xxx.xxx.xxx.xxx --- ansible_host: xxx.xxx.xxx.xxx ← 接続先IPを指定 ansible_connection: httpapi  ← FortiGateは、デフォルト接続方式(ssh)ではなく、HTTP/HTTPS(API)を使用 ansible_httpapi_use_ssl: yes  ← HTTP/HTTPS(API)を使用する際、HTTPSを使用 ansible_httpapi_validate_certs: no  ← HTTP/HTTPS(API)を使用する際、証明書のチェックを無視(証明書が信頼できないエラーを回避) ansible_network_os: fortinet.fortios.fortios  ← 接続方式(httpapi)を使用する場合、使用するプラグインを指定 認証情報:対象機器へのログイン情報(ユーザ名/パスワード)を設定。 ユーザ名は  変数:ansible_user   に保持される パスワードは 変数:ansible_password に保持される   Playbook作成(YAML) 使用モジュール fortinet.fortios.fortios.fortios_firewall_address  を使用。 ※参考ページ:https://docs.ansible.com/projects/ansible/latest/collections/fortinet/fortios/fortios_firewall_address_module.html   Objects-アドレスの登録(Type:Subnet) アドレス情報(Type:Subnet)を指定して登録(state: ‘present’)を行う。 - name: Add Address(Subnet) fortios_firewall_address: vdom: "root" state: "present" firewall_address: name: "test_add001" type: "ipmask"          ← Type:Subnet を指定 subnet: "10.10.10.0 255.255.255.0"  ← IP/Netmask を指定 comment: "IP NETMASK" register: wk_result 実行結果:対象のアドレスが登録された。 ※登録後のアドレス情報を抜粋 "msg": { "meta": { "results": [ { "name": "test_add001", "type": "ipmask", "subnet": "10.10.10.0 255.255.255.0", "comment": "IP NETMASK" } ], "status": "success", "vdom": "root" } }   Objects-アドレスの登録(Type:IP Range) アドレス情報(Type:IP Range)を指定して登録(state: ‘present’)を行う。 - name: Add Address(IP Range) fortios_firewall_address: vdom: "root" state: "present" firewall_address: name: "test_add002" type: "iprange"       ← Type:IP Range を指定 start_ip: "10.10.10.20"   ← IP Range(開始) を指定 end_ip: "10.10.10.21"    ← IP Range(終了) を指定 comment: "IP RANGE" register: wk_result 実行結果:対象のアドレスが登録された。 ※登録後のアドレス情報を抜粋 "msg": { "meta": { "results": [ { "name": "test_add002", "type": "iprange", "start-ip": "10.10.10.20", "end-ip": "10.10.10.21", "comment": "IP RANGE" } ], "status": "success", "vdom": "root" } }   Objects-アドレスの変更 ※同一Typeでの変更パターン アドレス情報(Type:Subnet)を指定して変更(state: ‘present’)を行う。 - name: Add Address(Subnet) fortios_firewall_address: vdom: "root" state: "present" firewall_address: name: "test_add001" type: "ipmask"             ← Typeは 変更しない subnet: "10.10.20.0 255.255.255.0"  ← IP/Netmaskを "10.10.10.0 255.255.255.0"から変更する comment: "IP NETMASK" register: wk_result 実行結果:対象のアドレスが変更された。※変更後のアドレス情報を抜粋 "msg": { "meta": { "results": [ { "name": "test_add001", "type": "ipmask", "subnet": "10.10.20.0 255.255.255.0", "comment": "IP NETMASK" } ], "status": "success", "vdom": "root" } }   Objects-アドレスの変更 ※異なるTypeへの変更パターン アドレス情報(Type:IP Range)を指定して変更(state: ‘present’)を行う。 - name: Change Address(IP Range -> Subnet) fortios_firewall_address: vdom: "root" state: "present" firewall_address: name: "test_add002" type: "ipmask"            ←  Type:IP Range から変更する subnet: "10.10.30.0 255.255.255.0" ←  start_ip: "10.10.10.20",end_ip: "10.10.10.21"から変更する comment: "IP RANGE -> IP NETMASK" register: wk_result 実行結果:対象のアドレスが 正しく変更されない!!  ※変更後のアドレス情報を抜粋 "msg": { "meta": { "results": [ { "name": "test_add002", "type": "ipmask",         ← Typeは、変更された "subnet": "0.0.0.0 0.0.0.0",   ← subnetは、正しく設定されない。。。 "comment": "IP RANGE -> IP NETMASK", } ], "status": "success", "vdom": "root" } } 異なるTypeへの変更対応方法について 現状のAnsibleモジュールでは、異なるTypeへの変更は正しく実施されないことが分かりました。。。 その為、異なるTypeへの変更時は、変更元アドレスを削除した後に 新しいTypeのアドレスを登録するようにしましょう!   Objects-アドレスの削除 接続情報とアドレスを指定して削除(state: ‘absent’)を行う。 - name: Delete Address fortios_firewall_address: vdom: "root" state: "absent" firewall_address: name: "test_add001" register: wk_result 実行結果:対象のアドレスが削除された。 ※削除後のアドレス情報なし   最後に 「Ansible」の「 fortinet.fortios.fortios.fortios_firewall_address 」を使用し、「Objects-アドレス」の登録/変更/削除 ができたことは良かった。しかし、現状 設定情報がベタ書きで使い勝手が悪いので、今後 設定内容をINPUTする仕組みを試みたいと思います。これに伴い、何らかの変更申請の仕組みと連携することができ、より設定変更の自動化が活用できるようになると思います。
はじめに こんにちは。バンダイナムネクサス データ戦略部の山野です。 今回は、Google Cloudのサービスを活用してエンジニア向けの開発環境を刷新した事例をご紹介します。私たちの課題と、それをどう解決したかについて、具体的なポイントを深掘りしていきます。 経緯と背景 エンジニア向けの開発環境を、ユーザーと管理者の両方にとってより使いやすく、効率的にしたいという要望がありました。そのため、以下の点に注目して改善を試みました。 マネージドサービスを活用した運用の効率化: 弊チームでは、これまでエンジニア向けの開発環境としてVM環境を提供してきました。しかし、運用コストの増

動画

該当するコンテンツが見つかりませんでした

書籍