F5OS-A 簡単セットアップガイド (API編)
最終更新日: 2023年9月26日
はじめに
このページでは、これらのオフィシャルなドキュメントの補足となる資料や、複数の機能を組合せてソリューションを実現する方法をご紹介いたします。 F5のオフィシャルなドキュメントはこちらにございます。
- MyF5: https://my.f5.com/
- F5 Cloud Docs: https://clouddocs.f5.com/
- F5 DevCentral(コミュニティ): https://commnunity.f5.com/
コンテンツ
このページでは、以下の内容をご紹介しております。
- 本セットアップガイドでは、APIを使ったF5OS-A (F5 rSeries)の設定方法についてご案内します。
- F5 rSeriesでは、F5OS上でBIG-IPを「テナント」として動作させることができ、1つの筐体で複数のテナントを動作させることができます (マルチテナント)。
- F5OS-Aは、オペレーションをAPI経由で行うことができます。
- 本ガイドでは、F5 rSeriesをご購入いただいてすぐに使い始められるように、F5 rSeriesの典型的なセットアップ手法を紹介します。
- 管理用のマネージメントIPアドレスは、設定済みである前提としております。
- 本ガイドは、F5 Japanにおけるハンズオントレーニングで実施している内容に準拠しております。
F5 rSeriesの初期設定
本章では、基本的なF5 rSeries (F5OS-A)の設定内容についてご紹介致します。
Management IP設定
リモート端末からAPIでアクセスできるようにするために、CLIでManagement IPアドレスを設定します。詳細な手順につきましては、以下のドキュメントをご参照ください。
https://f5j-easy-setup-f5os.readthedocs.io/ja/latest/module1/class01/class1.html
F5OS初期パスワード変更
F5OSのadminユーザーの初期パスワードは"admin"になっています。API経由でアクセスするには、初期パスワードを変更する必要があります。以下のようなcurlコマンドを実行して、adminユーザーの初期パスワードを変更します。(<>内の部分は、ご利用の環境に合わせて修正してください。)
$ curl -sk -u admin:admin -H "Content-Type:application/yang-data+json" https://$APPLIANCE_IP/api/operations/openconfig-system:system/aaa/authentication/users/user=admin/config/change-password -d @- <<EOS
{
"input": [
{
"old-password": "admin",
"new-password": "<F5OSのadminユーザーパスワード>",
"confirm-password": "<F5OSのadminユーザーパスワード>"
}
]
}
EOS
APIアクセストークンの取得
- 最初に、変数"F5OS_PASSWORD"および"APPLIANCE_IP"を設定します。環境変数として設定する場合には、以下のようなコマンドを実行してください。(<>内の部分は、ご利用の環境に合わせて修正してください。)
$ export F5OS_PASSWORD=<F5OSのadminユーザーパスワード>
$ export APPLIANCE_IP=<rSeriesのManagement IPアドレス>
- 以下のようなコマンドを実行し、Basic認証でAPIアクセストークンを取得します。レスポンス・ヘッダ内に含まれる"X-Auth-Token"の値を取得し、以降のAPIリクエストに利用します。
$ curl -sk -u admin:$F5OS_PASSWORD -I https://$APPLIANCE_IP/api/data/openconfig-system:system/aaa
注釈
F5OSでは、ポート8888およびポート443でAPIコールを受け付けることができます (いずれもhttps)。ポート443を利用する場合、URIの最初の部分は"/api"となります。ポート8888を利用する場合、URIの最初の部分は"/restconf"となります。本資料では、ポート443で"/api"を用いる場合について、ご紹介していきます。
- 上記のコマンドの出力例は、以下の通りです。
HTTP/1.1 200 OK
Date: Thu, 17 Aug 2023 15:37:35 GMT
Server: Apache
Strict-Transport-Security: max-age=63072000; includeSubdomains;
Cache-Control: private, no-cache, must-revalidate, proxy-revalidate
Content-Type: application/yang-data+xml
Pragma: no-cache
X-Auth-Token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJTZXNzaW9uIElEIjoiYWRtaW4xNjkyMjg2NjU1IiwiYXV0aGluZm8iOiJhZG1pbiAxMDAwIDkwMDAgXC90bXAiLCJidWZmZXJ0aW1lbGltaXQiOiIzMDAiLCJleHAiOjE2OTIyODc1NTUsImlhdCI6MTY5MjI4NjY1NSwicmVuZXdsaW1pdCI6IjUiLCJ1c2VyaW5mbyI6ImFkbWluIDE3Mi4xOC4yMDIuMTk3In0.WfIWKmKf3ykk3Uorlmurx_YmeialOZbnxzoZDawixy8
Content-Security-Policy: default-src 'self'; block-all-mixed-content; base-uri 'self'; frame-ancestors 'none';
Strict-Transport-Security: max-age=15552000; includeSubDomains
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block
Content-Security-Policy: default-src 'self'; upgrade-insecure-requests; frame-ancestors 'none'; script-src 'self'; style-src 'self' 'unsafe-inline'; object-src 'none'; base-uri 'self'; connect-src 'self'; font-src 'self'; frame-src 'self'; img-src 'self' data:; manifest-src 'self'; media-src 'self'; worker-src 'none';
- 以下のコマンドを実行することで、レスポンス・ヘッダ内のX-Auth-Tokenの値を変数"F5OS_TOKEN"に代入できます。
$ F5OS_TOKEN=`curl -sk -u admin:$F5OS_PASSWORD -o /dev/null -I https://$APPLIANCE_IP/api/data/openconfig-system:system/aaa -w '%header{X-Auth-Token}\n'`
- 以下のコマンドを実行して、変数"F5OS_TOKEN"に値が格納されていることを確認します。
$ echo $F5OS_TOKEN
rSeries アプライアンス初期設定
ライセンス確認
- 以下のコマンドを実行して、rSeriesアプライアンスに適用されているライセンス情報を確認します。このコマンドを実行すると、Registration Keyを含むライセンス情報を確認できます。
$ curl -sk -H "X-Auth-Token:$F5OS_TOKEN" -H "Content-Type:application/yang-data+json" https://$APPLIANCE_IP/api/data/openconfig-system:system/f5-system-licensing:licensing
ホスト名の設定
- 以下のようなcurlコマンドを実行して、rSeriesアプライアンスのホスト名を設定します。ホスト名の設定には、PATCHメソッドを使用します。この例では、ホスト名を"Appliance01"として設定します。
$ curl -sk -X PATCH -H "X-Auth-Token:$F5OS_TOKEN" -H "Content-Type:application/yang-data+json" https://$APPLIANCE_IP/api/data/ -d @- <<EOS
{
"openconfig-system:system": {
"config": {
"hostname": "Appliance01"
}
}
}
EOS
- 以下のコマンドを実行して、ホスト名が適切に設定されているかを確認します。
$ curl -sk -H "X-Auth-Token:$F5OS_TOKEN" -H "Content-Type:application/yang-data+json" https://$APPLIANCE_IP/api/data/openconfig-system:system/config
- 上記コマンドの実行結果 (レスポンス)は、以下の通りです。
{
"openconfig-system:config": {
"hostname": "Appliance01"
}
}
DNSサーバー設定
- 以下のようなcurlコマンドを実行して、rSeriesアプライアンスが参照するDNSサーバーを設定します。DNSサーバーの設定には、PATCHメソッドを使用します。この例では、参照するDNSサーバーを"8.8.8.8"として設定します。
$ curl -sk -X PATCH -H "X-Auth-Token:$F5OS_TOKEN" -H "Content-Type:application/yang-data+json" https://$APPLIANCE_IP/api/data/openconfig-system:system/dns -d @- <<EOS
{
"openconfig-system:dns": {
"servers": {
"server": [
{
"address": "8.8.8.8",
"config": {
"address": "8.8.8.8",
"port": 53
}
}
]
}
}
}
EOS
- 以下のコマンドを実行して、DNSサーバーが適切に設定されているかを確認します。
$ curl -sk -H "X-Auth-Token:$F5OS_TOKEN" -H "Content-Type:application/yang-data+json" https://$APPLIANCE_IP/api/data/openconfig-system:system/dns
- 上記コマンドの実行結果 (レスポンス)は、以下の通りです。
{
"openconfig-system:dns": {
"servers": {
"server": [
{
"address": "8.8.8.8",
"config": {
"address": "8.8.8.8",
"port": 53
},
"state": {
"port": 53
}
}
]
}
}
}
時刻設定 (Time ZoneおよびNTPサーバー)
- 以下のようなcurlコマンドを実行して、rSeriesアプライアンスのタイムゾーン、および参照するNTPサーバーを設定します。時刻設定には、PATCHメソッドを使用します。この例ではTime Zoneを"Asia/Tokyo"、NTPサーバーを"ntp.nict.jp"として設定します。
$ curl -sk -X PATCH -H "X-Auth-Token:$F5OS_TOKEN" -H "Content-Type:application/yang-data+json" https://$APPLIANCE_IP/api/data -d @- <<EOS
{
"openconfig-system:system": {
"clock": {
"config": {
"timezone-name": "Asia/Tokyo"
}
},
"ntp": {
"config": {
"enabled": "true"
},
"servers": {
"server": [
{
"address": "ntp.nict.jp",
"config": {
"address": "ntp.nict.jp"
}
}
]
}
}
}
}
EOS
- 以下のコマンドを実行して、NTPサーバーが適切に設定されているかを確認します。
$ curl -sk -H "X-Auth-Token:$F5OS_TOKEN" -H "Content-Type:application/yang-data+json" https://$APPLIANCE_IP/api/data/openconfig-system:system/ntp
- 上記コマンドの実行結果 (レスポンス)は、以下の通りです。
{
"openconfig-system:ntp": {
"config": {
"enabled": true,
"enable-ntp-auth": false
},
"state": {
"enabled": true,
"enable-ntp-auth": false
},
"servers": {
"server": [
{
"address": "ntp.nict.jp",
"config": {
"address": "ntp.nict.jp",
"port": 123,
"version": 4,
"association-type": "SERVER",
"iburst": false,
"prefer": false
},
"state": {
"address": "ntp.nict.jp",
"port": 123,
"version": 4,
"association-type": "SERVER",
"iburst": false,
"prefer": false,
"f5-openconfig-system-ntp:authenticated": false
}
}
]
}
}
}
リモートログサーバー設定
- 以下のようなcurlコマンドを実行して、F5OSのログを転送するリモートログサーバー (Syslogサーバー)を設定します。ログサーバーの設定には、PATCHメソッドを使用します。この例では、ログサーバーを"10.10.10.10"として設定します。
$ curl -sk -X PATCH -H "X-Auth-Token:$F5OS_TOKEN" -H "Content-Type:application/yang-data+json" https://$APPLIANCE_IP/api/data -d @- <<EOS
{
"openconfig-system:system": {
"logging": {
"remote-servers": {
"remote-server": [
{
"host": "10.10.10.10",
"config": {
"host": "10.10.10.10",
"remote-port": "514"
},
"selectors": {
"selector": [
{
"facility": "LOCAL0",
"severity": "INFORMATIONAL",
"config": {
"facility": "LOCAL0",
"severity": "INFORMATIONAL"
}
}
]
}
}
]
}
}
}
}
EOS
- 以下のコマンドを実行して、ログサーバーが適切に設定されているかを確認します。
$ curl -sk -H "X-Auth-Token:$F5OS_TOKEN" -H "Content-Type:application/yang-data+json" https://$APPLIANCE_IP/api/data/openconfig-system:system/logging/remote-servers
- 上記コマンドの実行結果 (レスポンス)は、以下の通りです。
{
"openconfig-system:remote-servers": {
"remote-server": [
{
"host": "10.10.10.10",
"config": {
"host": "10.10.10.10",
"remote-port": 514,
"f5-openconfig-system-logging:proto": "udp"
},
"selectors": {
"selector": [
{
"facility": "f5-system-logging-types:LOCAL0",
"severity": "INFORMATIONAL",
"config": {
"facility": "f5-system-logging-types:LOCAL0",
"severity": "INFORMATIONAL"
}
}
]
}
}
]
}
}
許可リスト (Allow List) 設定
- 以下のようなcurlコマンドを実行して、F5OSのOut-of-band管理を許可するIPアドレス、およびポート番号を設定します。Allow Listの設定には、POSTメソッドを使用します。この例では、"10.255.0.0/24"からのSNMP (ポート161)通信を許可するAllow Listを設定します。
$ curl -sk -X POST -H "X-Auth-Token:$F5OS_TOKEN" -H "Content-Type:application/yang-data+json" https://$APPLIANCE_IP/api/data/openconfig-system:system/f5-allowed-ips:allowed-ips -d @- <<EOS
{
"allowed-ip": [
{
"name": "allow-snmp",
"config": {
"ipv4": {
"address": "10.255.0.0",
"prefix-length": 24,
"port": 161
}
}
}
]
}
EOS
- 以下のコマンドを実行して、Allow Listが適切に設定されているかを確認します。
$ curl -sk -H "X-Auth-Token:$F5OS_TOKEN" -H "Content-Type:application/yang-data+json" https://$APPLIANCE_IP/api/data/openconfig-system:system/f5-allowed-ips:allowed-ips
- 上記コマンドの実行結果 (レスポンス)は、以下の通りです。
{
"f5-allowed-ips:allowed-ips": {
"allowed-ip": [
{
"name": "allow-snmp",
"config": {
"ipv4": {
"address": "10.255.0.0",
"prefix-length": 24,
"port": 161
}
}
}
]
}
}
rSeries ネットワーク設定
VLAN設定
- 以下のようなcurlコマンドを実行して、rSeriesアプライアンス上でVLANを設定します。VLANの設定には、PATCHメソッドを使用します。この例では、VLAN ID "103" (VLAN名 "vlan103")とVLAN ID "104" (VLAN名 "vlan104")の2つのVLANを作成します。
$ curl -sk -X PATCH -H "X-Auth-Token:$F5OS_TOKEN" -H "Content-Type:application/yang-data+json" https://$APPLIANCE_IP/api/data -d @- <<EOS
{
"openconfig-vlan:vlans": {
"vlan": [
{
"vlan-id": "103",
"config": {
"vlan-id": 103,
"name": "vlan103"
}
},
{
"vlan-id": "104",
"config": {
"vlan-id": 104,
"name": "vlan104"
}
}
]
}
}
EOS
- 以下のコマンドを実行して、VLANが適切に設定されているかを確認します。
$ curl -sk -H "X-Auth-Token:$F5OS_TOKEN" -H "Content-Type:application/yang-data+json" https://$APPLIANCE_IP/api/data/openconfig-vlan:vlans
- 上記コマンドの実行結果 (レスポンス)は、以下の通りです。
{
"openconfig-vlan:vlans": {
"vlan": [
{
"vlan-id": 103,
"config": {
"vlan-id": 103,
"name": "vlan103"
}
},
{
"vlan-id": 104,
"config": {
"vlan-id": 104,
"name": "vlan104"
}
}
]
}
}
Interface設定
- 以下のようなcurlコマンドを実行して、rSeriesアプライアンスの物理インタフェースにVLANを割り当てます。インタフェースの設定には、PATCHメソッドを使用します。この例では、上記で作成したVLAN 103と104を、Trunk VLAN (Tagged)としてインタフェース3.0に割り当てます。
$ curl -sk -X PATCH -H "X-Auth-Token:$F5OS_TOKEN" -H "Content-Type:application/yang-data+json" https://$APPLIANCE_IP/api/data/openconfig-interfaces:interfaces -d @- <<EOS
{
"openconfig-interfaces:interfaces": {
"interface": [
{
"name": "3.0",
"openconfig-if-ethernet:ethernet": {
"openconfig-vlan:switched-vlan": {
"config": {
"trunk-vlans": [
103,
104
]
}
}
}
}
]
}
}
EOS
- 以下のコマンドを実行して、インタフェース3.0の設定を確認します。
$ curl -sk -H "X-Auth-Token:$F5OS_TOKEN" -H "Content-Type:application/yang-data+json" https://$APPLIANCE_IP/api/data/openconfig-interfaces:interfaces | jq ".[].interface[2]"
- 上記で設定したtrunk-vlans (103および104)が含まれていることを確認します。
Link Aggregation (LAG) 設定
- 以下のようなcurlコマンドを実行して、LAGインタフェースを作成し、物理インタフェースを割り当てます。インタフェースの設定には、PATCHメソッドを使用します。この例では、"LAG-Data-1"というLAGインタフェースを作成し、インタフェース3.0および4.0を割り当てます。
$ curl -sk -X PATCH -H "X-Auth-Token:$F5OS_TOKEN" -H "Content-Type:application/yang-data+json" https://$APPLIANCE_IP/api/data -d @- <<EOS
{
"openconfig-interfaces:interfaces": {
"interface": [
{
"name": "LAG-Data-1",
"config": {
"name": "LAG-Data-1",
"type": "iana-if-type:ieee8023adLag",
"enabled": true
},
"openconfig-if-aggregate:aggregation": {
"config": {
"lag-type": "LACP",
"f5-if-aggregate:distribution-hash": "src-dst-ipport"
},
"openconfig-vlan:switched-vlan": {
"config": {
"trunk-vlans": [
103,
104
]
}
}
}
},
{
"name": "3.0",
"config": {
"name": "3.0"
},
"openconfig-if-ethernet:ethernet": {
"config": {
"openconfig-if-aggregate:aggregate-id": "LAG-Data-1"
}
}
},
{
"name": "4.0",
"config": {
"name": "4.0"
},
"openconfig-if-ethernet:ethernet": {
"config": {
"openconfig-if-aggregate:aggregate-id": "LAG-Data-1"
}
}
}
]
}
}
EOS
- 以下のようなcurlコマンドを実行して、上記で作成したLAGインタフェースにLACP (Link Aggregation Control Protocol)の設定を行います。LACPの設定には、PATCHメソッドを使用します。この例では、LACP Intervalを"FAST"、Modeを"Active"として設定します。
$ curl -sk -X PATCH -H "X-Auth-Token:$F5OS_TOKEN" -H "Content-Type:application/yang-data+json" https://$APPLIANCE_IP/api/data -d @- <<EOS
{
"ietf-restconf:data": {
"openconfig-lacp:lacp": {
"interfaces": {
"interface": [
{
"name": "LAG-Data-1",
"config": {
"name": "LAG-Data-1",
"interval": "FAST",
"lacp-mode": "ACTIVE"
}
}
]
}
}
}
}
EOS
- 以下のコマンドを実行して、LAGおよびLACPが適切に設定されているかを確認します。
$ curl -sk -H "X-Auth-Token:$F5OS_TOKEN" -H "Content-Type:application/yang-data+json" https://$APPLIANCE_IP/api/data/openconfig-lacp:lacp
- 上記のコマンドの出力例は、以下の通りです。
{
"openconfig-lacp:lacp": {
"config": {
"system-priority": 32768
},
"state": {
"f5-lacp:system-id-mac": "14:a9:d0:1a:82:13"
},
"interfaces": {
"interface": [
{
"name": "LAG-Data-1",
"config": {
"name": "LAG-Data-1",
"interval": "FAST",
"lacp-mode": "ACTIVE"
},
"state": {
"name": "LAG-Data-1",
"interval": "FAST",
"lacp-mode": "ACTIVE",
"system-id-mac": "14:a9:d0:1a:82:13"
},
"members": {
"member": [
{
"interface": "3.0",
"state": {
"interface": "3.0",
"activity": "ACTIVE",
"timeout": "SHORT",
"synchronization": "OUT_SYNC",
"aggregatable": true,
"collecting": false,
"distributing": false,
"system-id": "14:a9:d0:1a:82:13",
"oper-key": 3,
"partner-id": "00:00:00:00:00:00",
"partner-key": 0,
"port-num": 3072,
"partner-port-num": 0,
"counters": {
"lacp-in-pkts": "0",
"lacp-out-pkts": "370",
"lacp-rx-errors": "0"
}
}
},
{
"interface": "4.0",
"state": {
"interface": "4.0",
"activity": "ACTIVE",
"timeout": "SHORT",
"synchronization": "OUT_SYNC",
"aggregatable": true,
"collecting": false,
"distributing": false,
"system-id": "14:a9:d0:1a:82:13",
"oper-key": 3,
"partner-id": "00:00:00:00:00:00",
"partner-key": 0,
"port-num": 4096,
"partner-port-num": 0,
"counters": {
"lacp-in-pkts": "0",
"lacp-out-pkts": "0",
"lacp-rx-errors": "0"
}
}
}
]
}
}
]
}
}
}
BIG-IPテナントの管理
本章では、F5 rSeries上で動作するBIG-IPテナントをAPIで管理する方法について、ご紹介致します。
BIG-IPテナントのデプロイ
- 以下のようなcurlコマンドを実行して、rSeriesアプライアンス上にBIG-IP (TMOS)テナントを作成します。テナントの作成には、POSTメソッドを使用します。この例で作成するテナントの構成は、以下の通りです。
設定項目 | 値 |
---|---|
テナント名 | test-tenant01 |
テナント種別 | BIG-IP |
利用するテナントイメージ | BIGIP-17.1.0.2-0.0.2.ALL-F5OS.qcow2.zip.bundle |
BIG-IPテナントの管理IPアドレス | 172.28.15.216 |
デフォルトゲートウェイ | 172.28.15.254 |
サブネット長 (Prefix-length) | 23 |
テナントに割り当てるVLAN | 103および104 |
テナントに割り当てる仮想CPU数 | 4 |
テナントに割り当てるメモリ (MB) | 14848 |
テナントに割り当てるディスク容量 (GB) | 82 |
テナントの状態 | Deployed |
アプライアンス・モード | 無効 |
$ curl -sk -X POST -H "X-Auth-Token:$F5OS_TOKEN" -H "Content-Type:application/yang-data+json" https://$APPLIANCE_IP/api/data/f5-tenants:tenants -d @- <<EOS
{
"tenant": [
{
"name": "test-tenant01",
"config": {
"type": "BIG-IP",
"image": "BIGIP-17.1.0.2-0.0.2.ALL-F5OS.qcow2.zip.bundle",
"nodes": [
1
],
"mgmt-ip": "172.28.14.216",
"gateway": "172.28.15.254",
"prefix-length": 23,
"vlans": [
"103",
"104"
],
"vcpu-cores-per-node": 4,
"memory": 14848,
"storage": {
"size": 82
},
"cryptos": "enabled",
"running-state": "deployed",
"appliance-mode": {
"enabled": false
}
}
}
]
}
EOS
- 以下のコマンドを実行して、F5OSで稼働するテナントを確認します。
$ curl -sk -H "X-Auth-Token:$F5OS_TOKEN" -H "Content-Type:application/yang-data+json" https://$APPLIANCE_IP/api/data/f5-tenants:tenants
- 上記のコマンドの出力例は、以下の通りです。
{
"f5-tenants:tenants": {
"tenant": [
{
"name": "test-tenant01",
"config": {
"name": "test-tenant01",
"type": "BIG-IP",
"image": "BIGIP-17.1.0.2-0.0.2.ALL-F5OS.qcow2.zip.bundle",
"nodes": [1],
"mgmt-ip": "172.28.15.216",
"prefix-length": 23,
"dag-ipv6-prefix-length": 128,
"gateway": "172.28.15.254",
"vlans": [103, 104],
"cryptos": "enabled",
"vcpu-cores-per-node": 4,
"memory": "14848",
"storage": {
"size": 82
},
"running-state": "deployed",
"mac-data": {
"f5-tenant-l2-inline:mac-block-size": "one"
},
"appliance-mode": {
"enabled": false
}
},
"state": {
"name": "test-tenant01",
"unit-key-hash": "CvXv44ROa3LiMjsI4k0mmxiaOZa4rk5iN97edJD2lWYOu0tLgxcBpLC7z9Ubpw4jgaG+D0Xp+hoe6Ffv9HNnXQ==",
"type": "BIG-IP",
"image": "BIGIP-17.1.0.2-0.0.2.ALL-F5OS.qcow2.zip.bundle",
"mgmt-ip": "172.28.15.216",
"prefix-length": 23,
"dag-ipv6-prefix-length": 128,
"gateway": "172.28.15.254",
"vlans": [103, 104],
"cryptos": "enabled",
"vcpu-cores-per-node": 4,
"memory": "14848",
"storage": {
"size": 82
},
"running-state": "deployed",
"mac-data": {
"base-mac": "14:a9:d0:1a:82:14",
"mac-pool-size": 1,
"f5-tenant-l2-inline:mac-block": [
{
"mac": "14:a9:d0:1a:82:14"
}
]
},
"appliance-mode": {
"enabled": false
},
"cpu-allocations": {
"cpu-allocation": [
{
"node": 1
}
]
},
"feature-flags": {
"stats-stream-capable": true
},
"status": "Running",
"primary-slot": 1,
"image-version": "BIG-IP 17.1.0.2 0.0.2",
"instances": {
"instance": [
{
"node": 1,
"pod-name": "test-tenant01-1",
"instance-id": 1,
"phase": "Running",
"creation-time": "2023-08-21T07:09:32Z",
"ready-time": "2023-08-21T07:10:00Z",
"status": "Started tenant instance",
"mgmt-mac": "14:a9:d0:1a:82:15"
}
]
}
}
}
]
}
}
BIG-IPテナントの状態変更
F5OS上のテナントには以下の3種類の状態があり、F5OSから変更することができます。
状態 | 説明 |
---|---|
Configured | テナント設定のみシステム上に存在 |
Provisioned | ソフトウェアをインストールし、仮想ディスクを作成 |
Deployed | リソース (CPU/メモリ)を割り当て、テナントを起動 |
- 以下のcurlコマンドを実行して、作成したテナント"test-tenant01"の状態を"Configured"に変更します。テナントの状態設定には、PATCHメソッドを使用します。
$ curl -sk -X PATCH -H "X-Auth-Token:$F5OS_TOKEN" -H "Content-Type:application/yang-data+json" https://$APPLIANCE_IP/api/data/f5-tenants:tenants/tenant=test-tenant01/config/running-state -d @- <<EOS
{
"running-state": "configured"
}
EOS
- 以下のcurlコマンドを実行して、テナント"test-tenant01"の状態が"Configured"に変更されているかを確認します。
$ curl -sk -H "X-Auth-Token:$F5OS_TOKEN" -H "Content-Type:application/yang-data+json" https://$APPLIANCE_IP/api/data/f5-tenants:tenants/tenant=test-tenant01/config/running-state
- 上記コマンドの実行結果 (レスポンス)は、以下の通りです。
{
"f5-tenants:running-state": "configured"
}
å
BIG-IPテナントの削除
- 以下のcurlコマンドを実行して、作成したテナント"test-tenant01"を削除します。テナントの削除には、DELETEメソッドを使用します。
$ curl -sk -X DELETE -H "X-Auth-Token:$F5OS_TOKEN" -H "Content-Type:application/yang-data+json" https://$APPLIANCE_IP/api/data/f5-tenants:tenants/tenant=test-tenant01
- 以下のcurlコマンドを実行して、BIG-IPテナントを確認します。上記で削除したテナントが、存在していないことを確認します。
$ curl -sk -H "X-Auth-Token:$F5OS_TOKEN" -H "Content-Type:application/yang-data+json" https://$APPLIANCE_IP/api/data/f5-tenants:tenants
F5OSのアップグレード
本章では、APIを使ってF5OSをアップグレードする方法について、ご紹介致します。
F5OSのバージョン確認
- rSeries筐体にF5OSのイメージをアップロード後、以下のcurlコマンドを実行して、イメージの状態を確認します。
$ curl -sk -H "X-Auth-Token:$F5OS_TOKEN" -H "Content-Type:application/yang-data+json" https://$APPLIANCE_IP/api/data/openconfig-system:system/f5-system-image:image/state
- 上記のコマンドの出力例は、以下の通りです。
{
"f5-system-image:state": {
"os": {
"os": [
{
"version-os": "1.3.2-13054",
"status": "ready",
"date": "2023-01-26",
"size": "922.16MB",
"in-use": false,
"type": ""
},
{
"version-os": "1.5.1-12283",
"status": "ready",
"date": "2023-08-14",
"size": "926.15MB",
"in-use": true,
"type": ""
}
]
},
"services": {
"service": [
{
"version-service": "1.3.2-13054",
"status": "ready",
"date": "2023-01-26",
"size": "0.38GB",
"in-use": false,
"type": ""
},
{
"version-service": "1.3.0-8327",
"status": "ready",
"date": "2023-01-26",
"size": "2.15GB",
"in-use": false,
"type": ""
},
{
"version-service": "1.5.1-12283",
"status": "ready",
"date": "2023-08-14",
"size": "2.05GB",
"in-use": true,
"type": ""
},
{
"version-service": "1.5.0-5781",
"status": "ready",
"date": "2023-08-14",
"size": "2.49GB",
"in-use": false,
"type": ""
}
]
},
"iso": {
"iso": [
{
"version-iso": "1.3.2-13054",
"status": "ready",
"date": "2023-01-26",
"size": "4.04GB",
"in-use": false,
"type": ""
},
{
"version-iso": "1.5.1-12283",
"status": "ready",
"date": "2023-08-14",
"size": "6.05GB",
"in-use": false,
"type": ""
}
]
},
"install": {
"install-os-version": "1.5.1-12283",
"install-service-version": "1.5.1-12283",
"install-status": "none"
}
}
}
F5OSのバージョン変更
- 以下のようなcurlコマンドを実行して、筐体のF5OSバージョンを任意のものに変更します。F5OSのアップグレード/ダウングレードには、POSTメソッドを使用します。この例では、F5OS 1.3.2 Buld 13054 (1.3.2-13054)をインストールします。
$ curl -sk -X POST -H "X-Auth-Token:$F5OS_TOKEN" -H "Content-Type:application/yang-data+json" https://$APPLIANCE_IP/api/data/openconfig-system:system/f5-system-image:image/set-version -d @- <<EOS
{
"input": {
"iso-version": "1.3.2-13054"
}
}
EOS
- 上記コマンドの実行結果 (レスポンス)は、以下の通りです。
{
"f5-system-image:output": {
"response": "System ISO version has been set"
}
}
- F5OS再起動後、F5OSのバージョン確認 の手順に従ってF5OSイメージを確認し、"Install"以下の部分が指定したF5OSバージョンになっていることを確認します。
設定の保存とリストア
本章では、APIを使ってF5OSの設定を保存 (バックアップ)、およびリストアする方法について、ご紹介致します。
設定の保存 (バックアップ)
プライマリキーの設定
F5 rSeriesでは、設定データベースに含まれる機密性の高いパスワードやパスフレーズを暗号化/復号化するために、プライマリキーを使用します。 セキュリティを高めるために、プライマリキーは定期的にリセットすることを推奨します。 RMA時等、異なるデバイスに設定をリストアする場合、リストア対象のデバイスに同一のキーを設定する必要があります。
- 以下のcurlコマンドを実行して、rSeriesにプライマリキーを設定します。プライマリキーを新規に設定する際には、POSTメソッドを使用します。この例ではパスフレーズを"myprimarykey"、saltを"mysalt"として設定します。
curl -sk -X PATCH -H "X-Auth-Token:$F5OS_TOKEN" -H "Content-Type:application/yang-data+json" https://$APPLIANCE_IP/api/data/openconfig-system:system/aaa/f5-primary-key:primary-key/f5-primary-key:set -d @- <<EOS
{
"f5-primary-key:passphrase": "myprimarykey",
"f5-primary-key:confirm-passphrase": "myprimarykey",
"f5-primary-key:salt": "mysalt",
"f5-primary-key:confirm-salt": "mysalt"
}
EOS
バックアップファイルの作成
- 以下のcurlコマンドを実行して、F5OSの設定を保存 (バックアップ)します。設定のバックアップには、POSTメソッドを使用します。この例では、バックアップファイル名を"F5OS-BACKUP01"として設定します。
$ curl -sk -X POST -H "X-Auth-Token:$F5OS_TOKEN" -H "Content-Type:application/yang-data+json" https://$APPLIANCE_IP/api/data/openconfig-system:system/f5-database:database/f5-database:config-backup -d @- <<EOS
{
"f5-database:name": "F5OS-BACKUP01"
}
EOS
- 上記コマンドの実行結果 (レスポンス)は、以下の通りです。
{
"f5-database:output": {
"result": "Database backup successful. configs/F5OS-BACKUP01 is saved."
}
}
- 保存されたバックアップファイルは、ローカル端末等にダウンロードしておきます。
F5OSの初期化
- 以下のcurlコマンドを実行して、F5OSを初期化します。F5OSの初期化には、POSTメソッドを使用します。
$ curl -sk -X POST -H "X-Auth-Token:$F5OS_TOKEN" -H "Content-Type:application/yang-data+json" https://$APPLIANCE_IP/api/data/openconfig-system:system/f5-database:database/f5-database:reset-to-default -d @- <<EOS
{
"f5-database:proceed": "yes"
}
EOS
- 上記コマンドの実行結果 (レスポンス)は、以下の通りです。
{
"f5-database:output": {
"result": "Database reset-to-default successful."
}
}
- 初期化完了後、F5OS初期パスワード変更 の手順に従って、adminユーザーの初期パスワードを変更します。
設定のリストア
- 以下のcurlコマンドを実行して、バックアップファイルからF5OSの設定をリストアします。設定のリストアには、POSTメソッドを使用します。この例では、"F5OS-BACKUP01"という名前のバックアップファイルから、リストアを行います。
$ curl -sk -X POST -H "X-Auth-Token:$F5OS_TOKEN" -H "Content-Type:application/yang-data+json" https://$APPLIANCE_IP/api/data/openconfig-system:system/f5-database:database/f5-database:config-restore -d @- <<EOS
{
"f5-database:name": "F5OS-BACKUP01",
"f5-database:proceed": "yes"
}
EOS
- 上記コマンドの実行結果 (レスポンス)は、以下の通りです。
{
"f5-database:output": {
"result": "Database config-restore successful."
}
}
トラブル発生時の操作
本章では、APIを使ったF5OSの障害発生時の操作方法について、ご紹介致します。
QKViewの取得
- 以下のcurlコマンドを実行して、F5OSのQKViewファイルを取得します。QKViewの取得には、POSTメソッドを使用します。この例では、QKViewファイル名を"mytest-qkview.tgz"として設定します。
$ curl -sk -X POST -H "X-Auth-Token:$F5OS_TOKEN" -H "Content-Type:application/yang-data+json" https://$APPLIANCE_IP/api/data/openconfig-system:system/f5-system-diagnostics-qkview:diagnostics/f5-system-diagnostics-qkview:qkview/f5-system-diagnostics-qkview:capture -d @- <<EOS
{
"f5-system-diagnostics-qkview:filename": "mytest-qkview.tgz"
}
EOS
- 上記コマンドの実行結果 (レスポンス)は、以下の通りです。
{
"f5-system-diagnostics-qkview:output": {
"result": " Warning: Qkview may contain sensitive data such as secrets, passwords and core files. Handle with care. Please send this file to F5 support. \nQkview file mytest-qkview.tgz is being collected.\nreturn code 200\n ",
"resultint": 0
}
}
- 以下のcurlコマンドを実行して、rSeriesアプライアンス上に保存されたQKViewファイルの一覧を取得します。
$ curl -sk -H "X-Auth-Token:$F5OS_TOKEN" -H "Content-Type:application/yang-data+json" https://$APPLIANCE_IP/api/data/openconfig-system:system/f5-system-diagnostics-qkview:diagnostics/f5-system-diagnostics-qkview:qkview/f5-system-diagnostics-qkview:state/f5-system-diagnostics-qkview:files/f5-system-diagnostics-qkview:file
- 上記のコマンドの出力例は、以下の通りです。
{
"f5-system-diagnostics-qkview:file": [
{
"filename": "mytest-qkview.tgz",
"size": 622282180,
"created-on": "2023-08-21T17:55:40.185751329+09:00"
}
]
}
おわりに
APIによるF5OS初期セットアップに関しては、以上で終了となります。
<F5ネットワークスWEBサイトの紹介>
以上