設定方法
メニュー > 設定 > その他の設定 > 全般
「ウィンドウサイズ変更時に表示内容をクリアする」のチェックを外す。
その後、 設定 > 設定の保存 も忘れずに。
備考
毎年TeraTermを初めて使う人はいるし、作業用PCはデフォルト設定の場合もあるよね。
メニュー > 設定 > その他の設定 > 全般
「ウィンドウサイズ変更時に表示内容をクリアする」のチェックを外す。
その後、 設定 > 設定の保存 も忘れずに。
毎年TeraTermを初めて使う人はいるし、作業用PCはデフォルト設定の場合もあるよね。
Ansible2.10もASAも初めてですが、ちょうど良い記事があったのでAnsible2.10でASAを触ってみました。
https://www.ansible.com/blog/ansible-security-automation-resource-modules
Software | Versions |
---|---|
Ansible | 2.10.0b1 |
ASAv | 9.13 |
ASDM | 7.13 |
こちらの記事を参考にしました。 https://tekunabe.hatenablog.jp/entry/2020/06/21/ansible_stumble_07
# ansible-galaxy collection install cisco.asa -f Starting galaxy collection install process Process install dependency map |/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-Starting collection install process |Installing 'cisco.asa:1.0.0' to '/root/.ansible/collections/ansible_collections/cisco/asa' /-\|/-\|/-\|/-\|/-\|Skipping 'ansible.netcommon' as it is already installed # # ansible-galaxy collection list # /root/.ansible/collections/ansible_collections Collection Version -------------------- ------- ansible.netcommon 1.0.0 ansible.posix 1.0.0 cisco.asa 1.0.0 community.general 0.2.0 community.kubernetes 0.11.1 google.cloud 0.10.1 #
仮想アプライアンス
AWS Marketplace の Cisco Adaptive Security Virtual Appliance (ASAv) - BYOLを使いました。
ログイン後の設定
HTTPSの有効化とアクセス元の許可です。
ciscoasa> enable The enable password is not set. Please set it now. Enter Password: ******* Repeat Password: ******* Note: Save your configuration so that the password persists across reboots ("write memory" or "copy running-config startup-config"). ciscoasa# conf t ciscoasa(config)# ***************************** NOTICE ***************************** Help to improve the ASA platform by enabling anonymous reporting, which allows Cisco to securely receive minimal error and health information from the device. To learn more about this feature, please visit: http://www.cisco.com/go/smartcall Would you like to enable anonymous error reporting to help improve the product? [Y]es, [N]o, [A]sk later: a ciscoasa(config)# ciscoasa(config)# http server enable 443 ciscoasa(config)# http 【IPアドレス】 255.255.255.0 management ☆接続元の許可 ciscoasa(config)# username 【ユーザ名】 password 【パスワード】 privilege 15 ☆ユーザ作成 ciscoasa(config)# exit ciscoasa# write memory Building configuration... Cryptochecksum: 6b9b7d55 030f7cab 0597a569 40cd0d9d 7421 bytes copied in 0.180 secs [OK] ciscoasa#
ブラウザでアクセス
https://XX.XX.XX.XX にアクセスすると、アプリのインストールが求められます。
今回はASDMをインストールしました。
ASDMの起動
ASAのIP、ユーザ名、パスワードを入力します。
Interfaceの追加
Configuration > Device Setup > Interface Settings > Interfaces より、
VNIインターフェイスを追加します。
ACLの追加 Configuration > Firewall > Access Rules より、 ACLを追加します。
# cat inventory/inventory.ini [asa] ciscoasa ansible_host=XX.XX.XX.XX [all:vars] ansible_user=【ユーザ名】 ansible_password=【パスワード】 ansible_become=true ansible_become_method=ansible.netcommon.enable ansible_become_pass=【パスワード】 ansible_connection=ansible.netcommon.network_cli ansible_network_os=cisco.asa.asa ansible_python_interpreter=$(which python)
- playbook
追加したACLを表示します。
# cat asa_get-acl.yml --- - name: Get structured data hosts: ciscoasa gather_facts: false collections: - cisco.asa tasks: - name: Gather facts asa_acls: state: gathered register: gather - name: output data debug: msg: "{{ gather }}"
追加したACLが表示されました。
# ansible-playbook -i inventory/inventory.ini asa_get-acl.yml PLAY [Get structured data] ************************************************ TASK [Gather facts] ******************************************************* ok: [ciscoasa] TASK [output data] ******************************************************** ok: [ciscoasa] => { "msg": { "changed": false, "failed": false, "gathered": [ { "acls": [ { "aces": [ { "destination": { "address": "10.2.0.0", "netmask": "255.255.0.0" }, "grant": "permit", "line": 1, "protocol": "ip", "protocol_options": { "ip": true }, "source": { "any": true } } ], "acl_type": "extended", "name": "global_access" } ] } ] } } PLAY RECAP **************************************************************** ciscoasa : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
動かすことはできたけど、理解はこれから。
あと雨が続くので、腹筋ローラーを買った。ブログを書かない、走らない日は腹筋を鍛えるしかない。
ZabbixでNW機器を監視し、通信断が復旧したらAnsibleでログを自動取得します。
昨日の記事では、Ansible側に監視対象機器のIPアドレスを設定しており、使いまわすような設定ではありませんでした。
「Ansible × Zabbix」通信断が復旧したときのログ取得を自動化する - mito’s blog
今回はそこを改善し、IPアドレスを引数として渡すことで複数の監視機器で使いまわせる設定にします。
主にAWX(Ansible)のREST APIがメインになります。
Software | Versions |
---|---|
AWX(Ansible) | 13.0.0 |
Zabbix | 5.0 |
昨日の記事を参照してください。
「Ansible × Zabbix」通信断が復旧したときのログ取得を自動化する - mito’s blog
前回との差分を記載します
--- - hosts: "{{ host_name }}" #サーベイで入力する gather_facts: no tasks: - name: show command ios_command: commands: - show running-config - show log register: result - name: debug debug: msg: "{{ result.stdout_lines }}"
サーベイに以下を追加します。
ワークフロビジュアライザーで作成したテンプレートを追加します。
アクションのコマンド設定が前回と変わります。
curl -f -k -H 'Content-Type: application/json' -X POST --user '「AWXログインID」:「AWXログインパスワード」' http://「IPアドレス」/api/v2/workflow_job_templates/ワークフローID」/launch/ -d "{\"extra_vars\": {\"host_name\":\"{HOST.HOST}\",\"ansible_host\":\"{HOST.IP}\"}}"
監視対象のcsr-1を再起動させます。
Zabbixが通信断、および復旧を検知したあと、アクションが実行されます。ここまでは前回と同じです。
AWXでは、対象のワークフローが実行されています。
追加変数も正常に引き渡されていることが確認できます。
ひとまず満足。。。
雨が続いて走れないのでブログを書く。
ZabbixでNW機器を監視し、通信断が復旧したらAnsibleでログを自動取得します。
NW機器はcsrとし、show running-configとshow logを取得します。
Software | Versions |
---|---|
AWX(Ansible) | 13.0.0 |
Zabbix | 5.0 |
先日の記事の環境を使用します。
監視対象のNW機器も追加されている状態です。
https://mitomito.hatenablog.jp/entry/2020/06/20/070000
なお、監視対象のNW機器csr-1にはSSH接続出来るようにしておきます。
こちらの記事を参考に構築しました。
https://qiita.com/mina-stop/items/71266d74d102850eb4c0
また、テンプレートを作成する上で以下の問題にあたりますので、対応します。
https://sky-joker.tech/2018/03/21/awx%E3%81%ABvarlibawxprojects%E3%81%8C%E3%81%AA%E3%81%84%E6%99%82%E3%81%AE%E5%AF%BE%E5%87%A6/
PLAY RECAP ********************************************************************* localhost : ok=16 changed=5 unreachable=0 failed=0 skipped=86 rescued=0 ignored=0
2020/07/01追記 本記事はAnsible側に監視対象機器のIPアドレスを設定しています。
ワークフローのサーベイを使うことにより、ZabbixからIPアドレスを渡せます。
「Ansible × Zabbix」通信断復旧時の自動ログ取得を改善した - mito’s blog
Playbookやテンプレート等を作成します。
APIの参考情報
https://docs.ansible.com/ansible-tower/3.7.1/html_ja/towerapi/
アクションの「復旧時の実行内容」に、ジョブテンプレートを実行するためのコマンドを記載します。
curl -f -k -H 'Content-Type: application/json' -X POST --user '「AWXログインID」:「AWXログインパスワード」' http://「IPアドレス」/api/v2/job_templates/「ジョブテンプレートID」/launch/
死活監視の間隔を10秒にし、監視対象のcsr-1を再起動させます。 Zabbixが通信断、および復旧を検知したあと、アクション(右ポップアップのリモートコマンド)が実行されます。
AWXでは、対象のジョブテンプレートが実行されています。
show logの結果から、restartのログが確認できます。
インベントリやPlaybookの内容の工夫や、そもそもログを見やすくしたいなどAnsible側のスッキリさせたい設定は盛りだくさんですが、次はジョブテンプレートの結果をRedmineのチケットに追記してみたい。たい。いろいろ組み込みたい。
JBUG 東京 #16 #オンライン 〜今聞きたい!運営イチオシ特集〜 - connpass
セッション | 発表者 |
---|---|
なぜ、リモートアジャイルでタスク管理がそれほど重要なのか | 市谷 聡啓(@papanda) |
リモートワークになり意識を変えたプロジェクトマネジメント | ひろた◆Webディレクター(@hirota_director) |
Backlogと二人三脚で進める営業現場のプロジェクトマネジメントとは | はらあやか@ぬ(@_moroco) |