Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

はじめてのTerraform × NSX-T(VMware DevOps Meetup #7 発表資料)

はじめてのTerraform × NSX-T
(VMware DevOps Meetup #7 発表資料)

2021年1月20日

株式会社NTTデータ
ビジネスソリューション事業本部
堤 健太

  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

はじめてのTerraform × NSX-T(VMware DevOps Meetup #7 発表資料)

  1. 1. © 2021 NTT DATA Corporation はじめてのTerraform × NSX-T 2021年1月20日 株式会社NTTデータ ビジネスソリューション事業本部 堤健太 VMware DevOps Meetup #7
  2. 2. © 2021 NTT DATA Corporation 2 今日のネタ ●想定する聞き手 これからTerraformでのNSX-TのIaCを考えている人、興味を持っている人 ●話すこと TerraformでNSX-Tを操作するときの概要、押さえておきたいこと ●話さないこと NSX-TやTerraformのインストール方法、コードの書き方
  3. 3. © 2021 NTT DATA Corporation 3 目次 1. 自己紹介 2. なぜTerraform×NSX-Tをやろうとしたのか 3. Terraformとは 4. Terraform×NSX-Tの全体像(ここが伝えたい) 5. TerraformでCode化するときにどう進める 6. NSX-TでのAnsibleとTerraformの比較 7. まとめ
  4. 4. © 2021 NTT DATA Corporation 4 自己紹介 堤 健太 (つつみ けんた) 【経歴】 • 2008年にNTTデータに新卒入社。地方銀行の共同利用システムのネットワーク構築を10年ほど 従事し、ネットワークのソリューション開発を経て、現在はAR(拡張現実)やMEC(Mobile Edge Computing)を使った新規ビジネス開発を主幹している。 • 2018年からNTTデータの技術者育成の施策である「技統本塾」でVMware製品を検証してい る。この活動を通して、vExpert2020(NSX)に認定していただく。 【スキルセット、触ったことのある機器】 • Cisco製品(ルータ、スイッチ)、Infobloxを業務で触れる。キャンパスNW、WAN中心。 • ネットワークソリューション開発として、CiscoMeraki × ServiceNowやVeloCloud • 技統本塾の活動として、VMware NSX、AWS、Azure
  5. 5. © 2021 NTT DATA Corporation 5 なぜTerraform×NSX-Tをやろうとしたのか~検証での課題より • vSphere7 with k8sベースのオンプレでのアプリケーション開発基盤(仮想マシン、コンテナの混在)の検証 • アプリ開発者がコードを書くことだけに集中できるセキュアな環境を提供する。コンテナレジストリ、CI/CDなど 本番環境 検証環境 開発環境 k8s(TKG) コンテナ ローカル環境 顧客 エンドユーザ 開発者 【実装】 • 仮想マシンおよびコンテナの基盤としてVMwareの vSphere7 with kubernetesを複数並べる。 • コンテナレジストリはHarbor • GitOps、CI/CDの製品はGitlabをベース。 【発生している課題】 Nested(入れ子での仮想化)で環境構築をしているが、 NSX-Tをv2.Xからv3.0にするのにあたり設定のバックアップを 取りたい。手動で再構築も大変。 Infrastructure as CodeでCode化してバックアップ。ついでに 環境構築を自動化したい。まだCode化を取り組み始めた段 階だが、現時点で分かったことを共有する。 Ansibleに比べて社内の情報も少なかったのでTerraformを選択。 コンテナ k8s(TKG) コンテナ コンテナ k8s(TKG) コンテナ コンテナ Nested ESXi Nested ESXi Nested ESXi ESXi Nested ESXi Nested ESXi Nested ESXi ESXi NSX-T
  6. 6. © 2021 NTT DATA Corporation 6 Terraformとは オープンソースのInfrastructure as Code(IaC)のツールで、開発 はHashiCorpが主導している。いわゆる宣言型の方法を採用。 JSONのようなHCL(HashiCorp Configuration Language)で 記述でき、可読性が高い。 コアな処理を担当するTerraform本体と、AWSなどの各プラットフォー ムに依存した処理を担当するproviderに分かれている。 NSX-T module is developed in GitHub: https://github.com/hashicorp/terraform-provider-nsxt
  7. 7. © 2021 NTT DATA Corporation 7 Terraformとは NSX-Tの場合、provider、data、resourceの順番で設 定情報をCodeで書いていく。 ※設定ファイル(.tf)をどのように分けるかは模索中。 NSX-TだけでなくvSphereもTerraformでCode化すると、 vSphereのポートグループの変数に、NSX-T側で作成した セグメントの変数を指定することが出来る。 ※堤はGUIよりもCisco製品のconfigおよび自動化マクロを 書くのに慣れているので、特に違和感なく始められた。
  8. 8. © 2021 NTT DATA Corporation 8 NSX-T Automation Landscape (VMware社資料より) NSX-T Data Center REST API https://code.vmware.com/apis/547/nsx-t
  9. 9. © 2021 NTT DATA Corporation 9 目次(再掲) 1. 自己紹介 2. なぜTerraform×NSX-Tをやろうとしたのか 3. Terraformとは 4. Terraform×NSX-Tの全体像(ここが伝えたい) 5. TerraformでCode化するときにどう進める 6. NSX-TでのAnsibleとTerraformの比較 7. まとめ
  10. 10. © 2021 NTT DATA Corporation 10 Terraform×NSX-Tの全体像 • manager(命令型)とpolicy(宣言型)の2種類の設定方法があるが、policyに統一される方針。GUIも含む • TerraformのProviderのうち、Resourcesは更新系、Data Sourcesは参照系(情報取得のみ)。 Provider NSX-T Manager REST API manager policy ※APIにはSystem Administrationもある。 DataSourceの一部はこれをGETしている 各種 設定 manager Resources Data sources policy Resources Data sources GUI manager policy 命令型 宣言型 ここが伝えたい
  11. 11. © 2021 NTT DATA Corporation 11 参考)TerraformのNSX-T Provider 公式ドキュメント manager policy
  12. 12. © 2021 NTT DATA Corporation 12 参考)NSX-TのGUI NSX-Tのv2.4あたりでポリシー型が出てきた 両者はv3.0でも併存している
  13. 13. © 2021 NTT DATA Corporation 13 TerraformでCode化するときにどう進める 1. NSX-Tのネットワークをデザインする。できれば構成図に起こす。 2. TerraformのCodeを作成する →Terraformの公式ドキュメント調べる & GitHubで「nsx terraform」で出てくる設定ファイルを参考 →既存環境をあとからCode化するのは手作業。AWSの「Terraforming」などのツールは無い。 https://registry.terraform.io/providers/vmware/nsxt/latest/docs NSX ManagerのGUIの用語と Terraformの用語の紐付けで迷う
  14. 14. NSXEdge Nested ESXi N-VDS(Overlay) Port eth0 Port nvds1 T0-router-01 T1-router-01 Port fp-eth0 fp-eth1 Uplink Profile③ vNIC1 18xx _trunk Management 1800 vNIC1 vNIC2 vNIC3 TEP 1804 vmnic1 vmnic2 (物理スイッチ)#1 (物理スイッチ)#2 C892(物理ルータ)#1 トランスポートVLAN:0 uplink-1 18-com1 Port Port RouterPort downlink vNIC1 18-com2 Port vNIC1 18-com3 Port Uplink Profile② 18xx_trunk ESXi vmnic5 vDS_DSwitch Uplink Profile① IP プール NIOS Profile① LLDP Profile① uplink-1 act uplink-2 stan IP プール uplink-1 トランスポートVLAN:1804 uplink-1, uplink-2 vmk10 Port RouterPort downlink Port セグメント(VLAN) Seg-1808 Edgeクラスタ:NSX-Edge- Cluster01 外部I/F (アップリンク) リンクすると自動で アドレス採番 アップリンクは物理NWとの 接続となりNSX Edgeを指定 セグメント(Overlay)seg-1833 セグメント(Overlay)seg-1832 TZ-Vlan TZ-Overlay vlan1808 vlan1808 接続されたゲート ウェイ=なし vmk0 標準SW vmnic0 1800 構成図はVMware Communityのgo watanabeさんの 記事を参考に作成。 1800_management ※vDSのPGがAccessポートの場合は、 UplinkProfileのVLANは0にする
  15. 15. © 2021 NTT DATA Corporation 15 NSX-TでのAnsibleとTerraformの比較 ●ざっとした違い • 製品自体の思想としてAnsibleは命令型、Terraformは宣言型 • AnsibleとTerraformはNSX-Tの操作可能範囲が異なる。 • Ansible :デプロイ自動化にフォーカス(Day1寄り) ※NSX Managerのデプロイなど • Terraform:NSX-Tサービスをカバー(Day2寄り) ※セグメント作成など ※ただし、VMwareさんのドキュメントに操作可能範囲は拡大するという記述が見られるので、片方のみでも操作できるようになるかも。 ●AnsibleとTerraformの連携(下記の参照先より) • Ansible Towerで全体統制して、設定部分は宣言型のTerraformで実行? • 当たり前だが、複数のツールを覚える壁はあり、Playbook(YAML)とHCLを覚えるコストが発生。 参照:AnsibleとTerraformと https://note.com/santak/n/n22dbb35f6c01
  16. 16. © 2021 NTT DATA Corporation 16 まとめ ●伝えたいこと(再掲) NSX-Tはmanager(命令型)とpolicy(宣言型)の2種類の設定方法があるが、今後はpolicyに統一される ので、これからNSX-TでTerraformを使うならpolicy一択。 ●現時点でのTerraform×NSX-Tの感触 まだ全ての設定をTerraformでCode化することが出来ないので、なぜやりたいか、Code化する部分の構築が どれくらい発生するかと合わせて見極めが必要そう。Ansibleでの補完も学習コストとの兼ね合い。 ※NSX EdgeやTransportZone作成は、Terraform v3.1.1では不可。 ●余談 今はTerraformのCodeを書くときにNSX Managerから設定の名称をコピペしている。Visual Studio CodeなどでvCenterやNSX Managerの設定情報を取得して、NSX EdgeやTZの候補を提示してもらえる と嬉しい。
  17. 17. © 2021 NTT DATA Corporation 17 参考になるTerraform×NSX-Tの日本語の情報(@sky_jokerxxさんのブログ) https://sky-joker.tech より
  18. 18. © 2021 NTT DATA Corporation 本資料に記載されている会社名、商品名、又はサービス名は、各社の登録商標又は商標です。

×