この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
設定管理ツールは、サーバやネットワーク デバイスのセットアップなどの手動作業を自動化するために使用されます。アプリケーションの配信の要件として、ネットワーク機器の絶え間ない変更や再設定が問題となっています。手動による再設定プロセスがエラーを引き起こし、それがネットワークを停止させる原因となる可能性があります。設定に常に更新が必要で、しかもネットワーク デバイスが複数ある場合は、設定管理ツールが役に立ちます。
Cisco IOS XR ソフトウェアは、次の設定管理ツールと適切に機能することができます。
ここでは、IOS XR でのアプリケーションのホスティングに適した設定管理ツールである Chef および Puppet をインストールし、設定し、使用する方法について説明します。
Chef は IOS XR でさまざまなアプリケーションをインストールし、設定し、ネイティブに導入できるオープンソースの IT 自動化ツールです。
IOS XR でアプリケーションをネイティブに導入するために Chef を使用するには、次のコンポーネントが必要です。
Cisco IOS XR 6.0 向けの Chef Client RPM Version 12.5 以降
Chef Server Version 12.4 以降
IOS XR の Wind River Linux 7 環境に対応しているアプリケーション
トピック |
リンク |
Chef Software, Inc. |
|
Chef の概要 |
|
パッケージ リソースの参考資料 |
|
ファイル リソースの参考資料 |
|
サービス リソースの参考資料 |
|
Chef Server の参考資料 |
|
ネイティブ XR 環境向け Chef Client |
次の各項では、ネイティブなアプリケーション ホスティングを行うために Chef のレシピをどのようにインストールし、設定し、作成するかについて説明します。ネイティブなアプリケーション ホスティングについては、ネイティブ アプリケーションのホスティング:概要とワークフローを参照してください。
ここでは、IOS XR に Chef Client をインストールする手順について説明します。
インストールを進める前に、次の要件が満たされていることを確認します。
ワークステーションが Chef リポジトリと Chef 開発キットを使用してセットアップされている。
Chef Server Version 12.4 以降がインストールされており、Linux ボックスからアクセスできる。
Chef Server の ID ファイルを使用できる。
Linux 環境(/etc/resolv.conf)で設定された正しいサーバ名とドメイン名のエントリがある。
ルータが有効な NTP サーバを使用している。
IOS XR に Chef Client をインストールして設定するには、次の手順を実行します。
Linux ボックスから SSH を使用して IOS XR コンソールにアクセスし、ログインします。
cisco@host:~$ ssh root@192.168.122.188 root@192.168.122.188's password: RP/0/RP0/CPU0:ios#
IOS XR プロンプトが表示されます。
run コマンドを入力し、IOS XR の Linux bash シェルを起動します。
RP/0/RP0/CPU0:ios# run Wed Oct 28 18:45:56.168 IST [xr-vm_node0_RP0_CPU0:~]$
サードパーティ製ネットワークの名前空間(TPNNS)に移動します。
次に示すように、インターフェイスを表示し、TPNNS を使用しているかどうかを確認します。
xr-vm_node0_RP0_CPU0:~]$ip netns exec tpnns bash [xr-vm_node0_RP0_CPU0:~]$ifconfig Gi0_0_0_0 Link encap:Ethernet HWaddr 52:46:04:87:19:3c inet addr:192.164.168.10 Mask:255.255.255.0 inet6 addr: fe80::5046:4ff:fe87:193c/64 Scope:Link UP RUNNING NOARP MULTICAST MTU:1514 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:3 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:210 (210.0 B) Mg0_RP0_CPU0_0 Link encap:Ethernet HWaddr 52:46:12:7a:88:41 inet addr:192.168.122.197 Mask:255.255.255.0 inet6 addr: fe80::5046:12ff:fe7a:8841/64 Scope:Link UP RUNNING NOARP MULTICAST MTU:1514 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:3 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:210 (210.0 B) fwd_ew Link encap:Ethernet HWaddr 00:00:00:00:00:0b inet6 addr: fe80::200:ff:fe00:b/64 Scope:Link UP RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:2 errors:0 dropped:1 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:140 (140.0 B) fwdintf Link encap:Ethernet HWaddr 00:00:00:00:00:0a inet6 addr: fe80::200:ff:fe00:a/64 Scope:Link UP RUNNING NOARP MULTICAST MTU:1482 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:2 errors:0 dropped:1 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:140 (140.0 B) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) lo:0 Link encap:Local Loopback inet addr:1.1.1.1 Mask:255.255.255.255 UP LOOPBACK RUNNING MTU:1500 Metric:1 [xr-vm_node0_RP0_CPU0:~]$
(任意)必要に応じて、プロキシ サーバ(http_proxy、https_proxy)を設定します。
http_proxy=http://proxy.youtube.com:8080 https_proxy=https://proxy.youtube.com:8080
Chef Client をインストールします。
[xr-vm_node0_RP0_CPU0:~]$yum install https://chef.io/chef/install.sh
Chef の install.sh スクリプトによって、インストール用の最新バージョンの Chef Client RPM が自動的に特定されます。
validation.pem ファイルを Chef サーバから /etc/chef/validation.pem にコピーします。
/etc/chef/client.rb で Chef Server の ID とクライアントの設定を使用して Chef Client の設定を編集します。
validation_client_name 'chef-validator' chef_server_url 'https://my_chef_server.youtube.com/organizations/chef' node_name 'n3k.youtube.com' # "This" client device. cookbook_sync_threads 5 # necessary for small memory switches (4G or less) interval 30 # client-run interval; remove for "never"
Chef Client を実行します。
[xr-vm_node0_RP0_CPU0:~]$chef-client
(注) |
クライアントを一度実行するには、chef-client --once コマンドを使用します。詳細については、https://docs.chef.io/chef_client.html にある Chef のマニュアルを参照してください。 |
Chef Client が IOS XR に正常にインストールされます。
Chef レシピとともにロードされた Chef クックブックを Linux ワークステーションに作成して、Chef サーバにコピーできます。IOS XR に Chef クライアントをインストールした後、Chef サーバからクックブックをレシピとともにダウンロードし、クライアント実行中に使用することができます。
先に進む前に、次の要件が満たされていることを確認します。
次の手順を使用して、bootlogd サービスを開始し IOS XR の iPerf にインストールする Chef レシピを作成します。
対応する knife コマンドを使用して Linux ワークステーションにクックブックを作成します。
knife cookbook create cisco-network-chef-cookbook
iPerf をインストールする Chef レシピ ファイルを作成し、クックブックに追加します。
Chef レシピを cisco-network-chef-cookbook/recipes/ ディレクトリに作成する必要があります。Chef クライアントによって自動的にロードされるようにするには、Chef レシピの名前を default.rb にする必要があります。
# # Recipe:: demo_default_providers # # Copyright (c) 2015 The Authors, All Rights Reserved. package = 'iperf-2.0.5-r0.0.core2_64.rpm' service = 'bootlogd' remote_file "/#{package}" do source "http://10.105.247.73/wrl7_yum_repo/#{package}" action :create end yum_package "#{package}" do source "/#{package}" action :install end service "#{service}" do action :start end
Linux ワークステーションから Chef サーバにアクセスし、クックブックをサーバにアップロードします。
IOS XR シェルにログインし、Chef クライアントを実行してクックブックをロードし、実行します。
[xr-vm_node0_RP0_CPU0:~]$chef-client
iperf RPM が IOS XR にインストールされます。
Chef クライアントの詳細については、https://docs.chef.io/chef_client.html を参照してください。
Puppet は IOS XR でさまざまなアプリケーションをインストールし、設定し、ネイティブに導入できるオープンソースの IT 自動化ツールです。
IOS XR でアプリケーションをネイティブに導入するために Puppet を使用するには、次のコンポーネントが必要です。
IOS XR 用に構築された Puppet RPM。
Puppet Master Version 4.0 以降。
IOS XR の Wind River Linux 7 環境に対応しているアプリケーション
トピック |
Link |
Puppet Labs |
|
Puppet の概要 |
https://docs.puppetlabs.com/pe/latest/puppet_overview.html |
パッケージ タイプの参考資料 |
https://docs.puppetlabs.com/references/latest/type.html#package |
ファイル タイプの参考資料 |
https://docs.puppetlabs.com/references/latest/type.html#file |
サービス タイプの参考資料 |
https://docs.puppetlabs.com/references/latest/type.html#service |
Puppet Master の参考資料 |
|
ネイティブ IOS XR 環境向けの Puppet Agent |
次の各項では、ネイティブなアプリケーション ホスティングを行うために Puppet のマニフェストをどのようにインストールし、設定し、作成するかについて説明します。ネイティブなアプリケーション ホスティングについては、ネイティブ アプリケーションのホスティング:概要とワークフローを参照してください。
ここでは、IOS XR で Puppet Agent をインストールし、設定する方法について説明します。
インストールを進める前に、次の要件が満たされていることを確認します。
IOS XR で Puppet Agent をインストールして設定するには、次の手順を実行します。
Linux ボックスから SSH を使用して IOS XR コンソールにアクセスし、ログインします。
cisco@host:~$ ssh root@192.168.122.188 root@192.168.122.188's password: RP/0/RP0/CPU0:ios#
IOS XR プロンプトが表示されます。
run コマンドを入力し、IOS XR の Linux bash シェルを起動します。
RP/0/RP0/CPU0:ios# run Wed Oct 28 18:45:56.168 IST [xr-vm_node0_RP0_CPU0:~]$
サードパーティ製ネットワークの名前空間(TPNNS)に移動します。
に示すように、インターフェイスを表示して TPNNS を使用しているかどうかを確認します。
xr-vm_node0_RP0_CPU0:~]$ip netns exec tpnns bash [xr-vm_node0_RP0_CPU0:~]$ifconfig Gi0_0_0_0 Link encap:Ethernet HWaddr 52:46:04:87:19:3c inet addr:192.164.168.10 Mask:255.255.255.0 inet6 addr: fe80::5046:4ff:fe87:193c/64 Scope:Link UP RUNNING NOARP MULTICAST MTU:1514 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:3 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:210 (210.0 B) Mg0_RP0_CPU0_0 Link encap:Ethernet HWaddr 52:46:12:7a:88:41 inet addr:192.168.122.197 Mask:255.255.255.0 inet6 addr: fe80::5046:12ff:fe7a:8841/64 Scope:Link UP RUNNING NOARP MULTICAST MTU:1514 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:3 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:210 (210.0 B) fwd_ew Link encap:Ethernet HWaddr 00:00:00:00:00:0b inet6 addr: fe80::200:ff:fe00:b/64 Scope:Link UP RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:2 errors:0 dropped:1 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:140 (140.0 B) fwdintf Link encap:Ethernet HWaddr 00:00:00:00:00:0a inet6 addr: fe80::200:ff:fe00:a/64 Scope:Link UP RUNNING NOARP MULTICAST MTU:1482 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:2 errors:0 dropped:1 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:140 (140.0 B) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) lo:0 Link encap:Local Loopback inet addr:1.1.1.1 Mask:255.255.255.255 UP LOOPBACK RUNNING MTU:1500 Metric:1
(任意)必要に応じて、プロキシ サーバ(http_proxy、https_proxy)を設定します。
http_proxy=http://proxy.youtube.com:8080 https_proxy=https://proxy.youtube.com:8080
Puppet Agent をインストールします。
[xr-vm_node0_RP0_CPU0:~]$ wget http://yum.puppetlabs.com/RPM-GPG-KEY-puppetlabs [xr-vm_node0_RP0_CPU0:~]$ wget http://yum.puppetlabs.com/RPM-GPG-KEY-reductive [xr-vm_node0_RP0_CPU0:~]$ rpm --import RPM-GPG-KEY-puppetlabs RPM-GPG-KEY-reductive [xr-vm_node0_RP0_CPU0:~]$ yum install http://yum.puppetlabs.com/puppetlabs-release-pc1-cisco-wrlinux-7.noarch.rpm
Puppet Agent が IOS XR に正常にインストールされます。
ここでは、アプリケーションをホストするための Puppet マニフェストの作成方法について説明します。
先に進む前に、次の要件が満たされていることを確認します。
Puppet マニフェストを作成して bootlogd サービスを開始し、IOS XR に iPerf をインストールするには、次の手順を実行します。
Puppet Master に Puppet マニフェストを作成し、アプリケーションを導入します。
マニフェストは /etc/puppetlabs/code/environments/production/manifests/ ディレクトリに作成する必要があります。Puppet Master によって自動的に起動するようにするには、マニフェストの名前を site.pp にする必要があります。
# Manifest to demo builtin providers # class ciscopuppet::demo_builtin_providers { $package = 'iperf' $service = 'bootlogd' yumrepo { 'wrl7-repo': ensure => present, name => 'wrl7-repo', baseurl => 'http://10.105.247.73/wrl7_yum_repo/', gpgcheck => 0, enabled => 1, proxy => '_none_', } package { $package: ensure => present, require => Yumrepo['wrl7-repo'], } service { $service: ensure => running, } } node 'default' { include ciscopuppet::demo_builtin_providers }
Puppet Agent にアクセスしてトリガーし、Puppet Master に定義されているマニフェストに基づいてシステムを収束します。
iPerf RPM が Puppet Agent によって IOS XR にインストールされます。