はじめに
AnsibleでLBの設定をする際に、REST APIを使いまくってるのだけれど、VirtualServer自体を設定するのと証明書の設定をするのは方法が違ったため、備忘録として残しておきます。
BIG-IPのREST-APIの操作は会社で行っているので、結果の記載が無いこと、また思い出しで書いてるので誤字や脱字がある可能性ご容赦下さい。
VirtualServerの設定を確認するには
curl -sk -u "admin:admin" -H 'Content-Type application/json' -X GET https://x.x.x.x/mgmt/tm/ltm/virtual/(VS名)
VirtualServerの設定はこれで確認できるのですが、証明書の情報はこれでは確認できません。
特定のVirtualServerに設定された証明書を確認するには
curl -sk -u "admin:admin" -H 'Content-Type application/json' -X GET https://x.x.x.x/mgmt/tm/ltm/virtual/(VS名)?expandSubcollections=true
https://devcentral.f5.com/s/articles/icontrol-rest-cookbook-24575
F5の公式サイトにある通り。
アドレスの末尾に「?expandSubcollections=true」を付けるようです。
より詳細なVirtualServerの設定内容を確認できます。
証明書の情報も入手できるようになりましたね。
特定のVirtualServerに設定された証明書をいじるためには
上記の方法ではまだ確認しか出来ていません。
F5のサイトの証明書のところに以下のような記載があると思われます。
"selfLink": "https://localhost/mgmt/tm/ltm/virtual/~Common~vs/profiles/~Common~http?ver=13.1.0"
そう。アドレスをhttps://x.x.x.x/mgmt/tm/ltm/virtual/(VS名)/profiles/とすれば弄れるのです。
実際のコマンドは以下の通りになってます。
curl -sk -u "admin:admin" -H 'Content-Type application/json' -X POST https://x.x.x.x/mgmt/tm/ltm/virtual/(VS名)/profiles -d "name:hogeProfile , fullPath:~Common~hogeProfile , context:all"
※ファイルの配置場所について、"/"を"~"と置き換えて表記する必要があるみたいですね。