ラベル Cisco Business 250 の投稿を表示しています。 すべての投稿を表示
ラベル Cisco Business 250 の投稿を表示しています。 すべての投稿を表示
2022年12月17日土曜日

AnsibleでCisco Business 250 (CBS250)を操作する

自宅ではAnsibleを導入してから、以下OSやソフトウェアに対して作業のコード化や自動化を行ってきた。導入手順などは以下記事を参照。

OS/ソフトウェア URL
Linux AnsibleでLinuxサーバの初期設定と単体テストを行う
Windows Server AnsibleからWindows Serverに接続するための事前作業
vSphere ESXi AnsibleでESXi上に仮想マシンを構築する

今回は、Ansibleを使って物理スイッチであるCisco Business 250 (CBS250)を操作する手順を記載する。Cisco Business 250 (CBS250)は、Ansibleに標準で導入されているcommunity.ciscosmbというモジュールで操作可能となる。

注意事項

私の環境では何度かコマンド実行すると、ときおりcommand timeout triggered, timeout value is 30 secs.のエラーでコマンド実行に失敗する事象が発生した。タイムアウト時間を延ばしてもうまくいかないが、しらばく時間を空けると成功するようになることまではわかっているが、解決には至らなかった。

環境

今回手順を確認した環境は以下の通り。

  • コントロールノード
    • OS : AlmaLinux 8.5
    • Ansible : ansible [core 2.13.1]
    • jqコマンドを使うため、あらかじめパッケージをインストールしておく
  • スイッチ
    • 機種 : Cisco Business 250 (CBS250-8T-E-2G)
    • ファームウェアバージョン : 3.2.0.84

事前準備として、あらかじめCBS250に対して以下を実施しておく。

  • SSH接続できるよう設定済みであること
  • SSH用の一般ユーザを作成済みであること
  • enableコマンド実行時のパスワードを設定済みであること

Cisco Business 250のconfigを取得するPlaybook

今回のPlaybookでは、show startup-configを実行して取得したコンフィグをファイルとして保存する。

以下にPlaybookの内容を説明する。

Playbook説明

変数 (vars)

Ansibleを使ってネットワーク機器を操作する際の変数は、以下の通り設定する。ポイントは、ansible_network_oscommunity.ciscosmb.ciscosmbと設定することだ。それ以外は、Cisco IOSなどを操作する際と大きく設定は変わらない。

変数 設定値
ansible_user 任意のSSH接続用ユーザを設定。今回はciscoで設定。
ansible_password 任意のSSH接続用ユーザのパスワードを設定。
ansible_connection network_cli
ansible_network_os community.ciscosmb.ciscosmb
ansible_become_method enable
ansible_become_password enableコマンド実行時のパスワードを設定。

タスク (tasks)

Playbookのタスクは以下の通り。

タスク モジュール 説明
Exec command (show startup-config) community.ciscosmb.command show startup-configを実行した結果を変数に格納する。
Output file cbs250 configuration ansible.builtin.copy コンフィグが保存された変数の内容をファイルに出力する。出力結果はJSON形式になる。
Convert file cbs250 configuration ansible.builtin.shell JSON形式の出力結果をRAW形式に変換する。この処理はAnsibleのshellモジュールを用いてjqコマンドを用いてファイルを整形することで実現した。
Remove temp file ansible.builtin.file 整形前のJSON形式のファイルを削除する。

Playbook

以上をふまえ、Playbook全体は以下となる。

get_cbs250_config.yml

---
- name: Get cisco business 250 configuration
  gather_facts: true
  hosts: cbs250

  vars:
    ansible_user: cisco
    ansible_password: 'P@ssw0rd'
    ansible_connection: network_cli
    ansible_network_os: community.ciscosmb.ciscosmb
    ansible_become_method: enable
    ansible_become_password: 'P@ssw0rd'

    file_cbs250_config: "{{ lookup('env', 'PWD') }}/cbs250/{{ inventory_hostname }}_conf.log"
    file_cbs250_config_tmp: "{{ lookup('env', 'PWD') }}/cbs250/{{ inventory_hostname }}_conf_tmp.log"

  tasks:
    # config取得
    - name: Exec command (show startup-config)
      community.ciscosmb.command:
        commands: show startup-config
      register: result
      become: true

    # configをファイル出力
    - name: Output file cbs250 configuration
      ansible.builtin.copy:
        content: "{{ result.stdout_lines }}"
        dest: "{{ file_cbs250_config_tmp }}"
        mode: '0644'
      delegate_to: localhost

    # JSON形式からRAW形式に変換
    - name: Convert file cbs250 configuration
      ansible.builtin.shell: |
        set -o pipefail && cat "{{ file_cbs250_config_tmp }}" | jq -r .[][] > "{{ file_cbs250_config }}"
      changed_when: false
      delegate_to: localhost

    # 一時ファイルの削除
    - name: Remove temp file
      ansible.builtin.file:
        path: "{{ file_cbs250_config_tmp }}"
        state: absent

実行結果

Playbookの実行結果は以下の通り。

# ansible-playbook -i hosts get_cbs250_config.yml 

PLAY [Get cisco business 250 configuration] *************************************************************************

TASK [Gathering Facts] **********************************************************************************************
ok: [cbs250]

TASK [Exec command (show startup-config)] ***************************************************************************
ok: [cbs250]

TASK [Output file cbs250 configuration] *****************************************************************************
changed: [cbs250 -> localhost]

TASK [Convert file cbs250 configuration] ****************************************************************************
ok: [cbs250 -> localhost]

TASK [Remove temp file] *********************************************************************************************
changed: [cbs250]

PLAY RECAP **********************************************************************************************************
cbs250                  : ok=5    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

CBS250のconfigファイルも以下の通り出力される。

cbs250/cbs250_conf.log

config-file-header
cbs250
v3.2.0.84 / RCBS3.2_950_377_134
CLI v1.0
file SSD indicator encrypted
@
ssd-control-start
ssd config
ssd file passphrase control unrestricted
no ssd file integrity control

~(以下略)~

以上で、Ansibleを使って物理スイッチであるCisco Business 250 (CBS250)を操作する手順は完了となる。

2022年4月16日土曜日

Cisco Business 250 (CBS250-8T-E-2G) のファームウェアバージョンアップ手順

先日、Cisco Business 250の10ポートモデルである「CBS250-8T-E-2G」を購入した。購入した経緯としては、CLIを使ってCiscoライクなコマンドで設定できて、SNMPを使って監視できる機器が欲しかったことが理由となる。

Cisco Business 250はAmazonで売ってはいる。以下にAmazonの購入リンクを記載しておくが、Yahoo! ショッピングで探した方がより安価で購入することができるのでお勧めとなる。

届いたスイッチのファームウェアを確認すると最新のファームウェアではなかったことから、まずはファームウェア更新を行うことにした。

本記事では、Cisco Business 250のファームウェアバージョンアップ手順を記載する。

環境

Cisco Business 250の機器型番と新旧のファームウェアバージョンを以下に記載する。

  • 機器型番 : CBS250-8T-E-2G
  • 旧ファームウェアバージョン : 3.0.0.69
  • 新ファームウェアバージョン : 3.1.1.7

Cisco Business 250ファームウェアバージョンアップ手順

1. ファームウェア及び言語ファイルをダウンロード

ファームウェアは以下からダウンロードできる。

機器型番は「Business 250-8T-E-2G Smart Switch」を選択し、最新のファームウェアの「ダウンロード オプション」リンクを選択する。

次の画面では、ファームウェア本体と言語ファイルの2つのファイルをダウンロードする。なお、ファームウェアは40MB程度と軽量である。

  • Firmware image for CBS250 release 3.1.1.7
  • JapaneseLanguage file for Cisco Business 250 series switches release 3.1.1.7

2. GUIよりファームウェアを更新

ファームウェア更新はGUIより実施できる。Cisco Business 250のGUIにログインし、左メニューの「管理者」→「ファイル管理」→「ファームウェア操作」を選択する。

ファームウェア操作では以下を設定し、右上の「適用」ボタンを押すことでファームウェアの更新が開始される。

設定項目 設定値
操作タイプ ファームウェアの更新
コピー方式 HTTP/HTTPS
ファイル名 先ほどダウンロードしたファームウェアファイル (拡張子.bin)

1~2分ほど待機し、画面上部に「成功」と表示されれば成功となる。ただし、この段階では「アクティブなファームウェアバージョン」は旧ファームウェアバージョンのままとなる。

3. スイッチを再起動

新ファームウェアで起動させるため、スイッチの再起動を行う。左メニューの「管理者」→「リブート」を選択し、「即時」が選択された状態で右上の「リブート」を選択する。

4, ファームウェアの更新を確認

5分ほど待機しGUIにログインしなおして、再度、左メニューの「管理者」→「ファイル管理」→「ファームウェア操作」を選択する。「アクティブなファームウェアバージョン」が新ファームウェアバージョンとなっていれば問題ない。

5. 言語ファイルをアップロード

左メニューの「管理者」→「ファイル管理」→「ファイル操作」を選択する。ファイル操作では以下を設定し、右上の「適用」ボタンを押すことで言語ファイルがアップロードされる。

設定項目 設定値
操作タイプ ファイルの更新
宛先ファイルタイプ 言語ファイル
コピー方式 HTTP/HTTPS
ファイル名 先ほどダウンロードしたフ言語ファイル (拡張子.lang)

なお、言語ファイルがアップロードに成功すると、一時的に言語設定が英語に変更される。

この場合は一度GUIからログオフし、ログイン画面で言語設定を日本語に変更することで、日本語に戻すことが可能となる。

6. 言語ファイルの更新を確認

言語ファイルが更新されていることの確認は、左メニューの「ステータスと統計画面」→「システムサマリー」にて確認することができる。なお、ダウンロードした言語ファイルのバージョンは「3.1.1.7」と表記されているが、実際のバージョンは「3.1.0.59」である点に注意しよう。

以上で、Cisco Business 250のファームウェアバージョンアップは完了となる。

人気の投稿