Lab 3 - NGINX Plus の追加
このラボのゴールは新たにNGINX Controllerの管理対象としてNGINX Plusを追加することです。 NGINX Controllerで管理する対象となるNGINX Plusは通常のNGINX Plus Subscriptionと異なる手順でライセンスキーの取得を行います。
Important
想定時間: 15分
Note
このラボの手順はラボを実施する方がWindows jumphost – jumphost-1
から操作する手順を示しています。
接続方法についてはこちらを参照ください。 F5 Labs - Index
NGINX Plus のインストール
“nginxplus-4” インスタンスにログインしてください。”PuTTY” を開き、保存済みのホストより nginxplus-4 を選択し、Open をクリックしてください
Important
もし、Puttyがサーバのホスト鍵に関する警告を示した場合、接続のため Yes をクリックしてください これは、ラボ環境の各ホストでユニークなhost keyを生成するため生じるものです
Curl コマンドを実行し、NGINX Controllerのログインに必要なCookie情報を取得します。ログインユーザとしてAdmin権限の
Peter Parker
でログインします$ curl -k -c cookie.txt -X POST --url 'https://10.1.1.5/api/v1/platform/login' --header 'Content-Type: application/json' --data '{"credentials": {"type": "ACTIVE_DIRECTORY","providerName":"ad-acmefinancial-net", "username": "peter@acmefinancial.net","password": "Peter123!@#"}}' $ curl -k -b cookie.txt -c cookie.txt -X GET --url 'https://10.1.1.5/api/v1/platform/login'
NGINX Plus インストールに利用する証明書と鍵を取得します
$ curl -k -b cookie.txt -c cookie.txt -X GET --url 'https://10.1.1.5/api/v1/platform/licenses/nginx-plus-licenses/controller-provided' --output nginx-plus-certs.tar.gz $ tar zxvf nginx-plus-certs.tar.gz $ ls nginx-repo.*
NGINX Plus インストールに必要となる手順を実施します。手順の各コマンドの役割は NGINX Plusのインストール手順(Ubuntu) を参照してください
$ sudo mkdir -p /etc/ssl/nginx $ sudo cp nginx-repo.* /etc/ssl/nginx/ $ sudo wget https://cs.nginx.com/static/keys/nginx_signing.key && sudo apt-key add nginx_signing.key $ sudo wget https://cs.nginx.com/static/keys/app-protect-security-updates.key && sudo apt-key add app-protect-security-updates.key $ sudo apt-get install apt-transport-https lsb-release ca-certificates $ printf "deb https://pkgs.nginx.com/plus/ubuntu `lsb_release -cs` nginx-plus\n" | sudo tee /etc/apt/sources.list.d/nginx-plus.list $ printf "deb https://pkgs.nginx.com/app-protect/ubuntu `lsb_release -cs` nginx-plus\n" | sudo tee /etc/apt/sources.list.d/nginx-app-protect.list $ printf "deb https://pkgs.nginx.com/app-protect-security-updates/ubuntu `lsb_release -cs` nginx-plus\n" | sudo tee -a /etc/apt/sources.list.d/nginx-app-protect.list $ sudo wget -P /etc/apt/apt.conf.d https://cs.nginx.com/static/files/90pkgs-nginx $ sudo apt-get update
NGINX Plus をインストールします。NGINX Controller に対応したVersionとしてR24をインストールします。NGINX Controllerに対応するNGINX PlusのVersionは Tech Spec を確認してください
$ sudo apt-get install nginx-plus=24-2~focal $ nginx -v
NGINX PlusのインスタンスをNGINX Controllerに追加する
jumphostのChromeで開かれているNGINX Controllerの管理画面を操作します。証明書エラーが表示されている場合には適切に操作をして画面を開いてください
もし開かれていない場合、Chromeブラウザを開いてください
BookmarkからNGINX Controller UIにアクセスしてください
NGINX Controller のadmin accountである、
Peter Parker
でログインしてくださいUsername Password peter@acmefinancial.net Peter123!@#
画面左上のナビゲーションバーを開き、ドロップダウンリストから Infrastructure を選択してください
画面右上の Create ボタンをクリックしてください
Add an existing instance
を選択し、”nginxplus-4” インスタンスを追加するため、項目に以下の内容を指定してくださいField Value Name nginxplus-4
Location West Coast Data Center (OTHER_LOCATION)
Allow insecure server connections to NGINX Controller using TLS Enable(Check) Instructions
に表示されるCURLコマンドの内容をコピーしてください。次のステップで利用します。コピーが完了しましたらClose
をクリックして画面を閉じてください前の手順で利用した “nginxplus-4” のターミナル、または “PuTTY” を起動し再度 nginxplus-4 を開いてください。
Instructions
からコピーしたcurlコマンドを実行してください。コマンドを実行するとプロンプトで実行を進めて良いか確認するプロンプトが複数回表示されます。内容を確認して y を入力してください。以下の内容が表示されれば正常に完了ですChromeでNGINX Controllerの Infrastructure を開き、新たに “nginxplus-4” が追加されていることを確認してください。その他ステータスが正しく閲覧できることを確認してください
表示名(Display Name)などを変更する場合は対象インスタンスをクリックし、 Edit をクリックしてください
(Optional) NGINX Controllerの管理対象となるNGINX Plusの設定
NGINX PlusをNGINX Controllerの管理対象として追加した際に、以下のような変更が行われます。参考情報としてご確認ください。
NGINX Plusに対しNGINX Controller Agentが正しくインストールできた場合、以下のようにモジュールが配置されます
$ ls /etc/nginx/modules ngx_http_f5_metrics_module-debug.so ngx_stream_f5_metrics_module-debug.so ngx_http_f5_metrics_module.so ngx_stream_f5_metrics_module.so
- 管理対象となるNGINX Plusの設定は、NGINX Controllerのみが変更可能となります。module2 で案内する手順により対象のNGINX Plusに対し設定を反映する際に、様々な管理用設定も含まれた設定ファイルが生成されます以下がその設定内容となります
$ less /etc/nginx/nginx.conf # Generated by NGINX Controller 1639124265 [ADC-a018e23e-770d-4b80-9a5d-9956cedb7738] - instance:nginxplus-4:west; ※省略※ load_module modules/ngx_http_f5_metrics_module.so; load_module modules/ngx_stream_f5_metrics_module.so; http { f5_metrics on; f5_metrics_server unix:/tmp/avr-socket.sr; ※省略※ log_format controller_recommended_log_format '$remote_addr - "$remote_user" [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for" "$host" sn="$server_name" rt="$request_time" ua="$upstream_addr" us="$upstream_status" ut="$upstream_response_time" ul="$upstream_response_length" cs="$upstream_cache_status" pa="$f5_published_api"'; access_log /var/log/nginx/access.log controller_recommended_log_format; error_log /var/log/nginx/error.log; ※省略※ server { server_name 127.0.0.1; listen 127.0.0.1:49151; access_log off; f5_metrics off; location /api { api; } } } stream { f5_metrics on; f5_metrics_server unix:/tmp/avr-socket.sr; }