Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Terraformを活用した自動化デモ_F5-NGINX_Community-20200805

117 views

Published on

Terraformを活用した自動化デモ_F5-NGINX_Community

Published in: Engineering
  • Be the first to comment

Terraformを活用した自動化デモ_F5-NGINX_Community-20200805

  1. 1. TerraformとAnsibleをシンプルなパ イプラインでクラウドインフラ構 築を迅速に
  2. 2. whoami • Terence Kam (テリー) • Cloud Solutions Engineer @ F5 • Social • Twitter: @opihimanju Image of some sort
  3. 3. • IaCで解決したかったこと4つ • 選定したツールの紹介 • 簡単なDemo Agenda
  4. 4. • インフラとデバイスの設定時間を短時間にする • 設定ミスを防ぐ (商用環境にデプロイする前にテストを行う) • “Secure by default”にする • テスト環境を壊しても怖くない (再構築は簡単、ゴミは残らない ) IaCで解決したかったこと4つ UI CLI Attacker/Bot
  5. 5. INFRASTRUCTURE AS CODE/CONFIGURATION AS CODE • スピードと効率 • CI / CDパイプラインへの統合 • オートメーション • チームコラボレーション • 技術的な負債を減らす • ⼈的ミスを防ぐ • コンプライアンスを簡素化 IaCはDevOpsに⽋かせない
  6. 6. 選定したツールの紹介:
  7. 7. 2019/04にV1.0リリース • Goで作られたオープンソースの継 続的インテグレーション・継続的 デリバリー(CI/CD)ツール CI/CD: Dronehttps://drone.io/
  8. 8. IaCツール: Terraform main.tf plan apply destroy Parse configuration Cloud provider Resource modules API VPC K8s Compute Instance … Storage Bucket / Terraform Cloud *.tfstate
  9. 9. IaCツール: Ansible main.yaml inventory modules ansible-playbook ssh API roles plugins collections K8s Compute Instance
  10. 10. Consul SERVICE DISCOVERY Application Nodes Consul client 1. Deploy or Auto Scale Workloads 2. Workloads register themsevles in Consul 3. F5 polls Consul for endpoint Ips 4. Client is load balanced to workloads • サービスディスカバリ • ヘルスチェック • KVストア • サービス間通信の AuthN/Z,mTLS • マルチDC
  11. 11. Vault SECRETS MANAGEMENT 1. Write secret (e.g. GCP service account credentials) 2. Workloads authenticate (e.g. Google Cloud IAM) 3. Workloads read/get secret 4. Workload uses secret to do tasks • シークレットのライフサイ クルの集中管理 • データプロテクション : API- Drivenな暗号化 • 20+ のシークレットに対応
  12. 12. Demo Workflow (CI/CD) Create PR Drone Pipeline 1. terraform apply 2. ansible-playbook Deployed Merge PR DockerHub tkam8/tfansible:lat est DevOps Security policies
  13. 13. Zone1 (asia-northeast1-a) Demo Workflow (CI/CD) – Step 3, 4 public_subnetwork private_subnetwork Drone Pipeline Ø VPC Networks Ø Network Firewall Ø NGINX VE (instance group) Ø F5 VE Ø Consul VE Ø Output Files Ø Ansible Host / Hostvars Ø Onboard F5 Ø Configure NGINX Ø Configure F5 (AS3) Compute Engine Instance Group NGINX CONSUL Compute Engine Instance Group VAULT CONSUL VAULT CONSUL VAULT CONSUL CONSUL F5 (WAF/Bot/LB/FW) Attacker/Bot client SecOps/DevOps/ AppDev NGINX CONSUL NGINX CONSUL • Service Discovery • Health Checks • Cloud agnostic • Auto Scaling • Auto Healing • WAF • Bot Mitigation • Load Balancing w/ Consul integration for service discovery DevOps • Auto Scaling • Auto Healing • Secrets Management
  14. 14. Demo 1. TerraformとAnsibleのコード変更をGitHubにコミット • 変更点: • WAFポリシーをEnable • NGINX instance groupをスケールアウト 2. GitHubのPRをmergeして、Droneパイプラインをトリガー 3. 設定変更を確認
  15. 15. • インフラとデバイスの設定時間を短時間にする • >Terraform & Ansible • 設定ミスを防ぐ (商用環境にデプロイする前にテストを行う) • >CI/CDパイプラインを活用(テスト用のパイプライン作成可能) • “Secure by default”にする • >WAFポリシーas Code • テスト環境を壊しても怖くない (再構築は簡単、ゴミは残らない) • >IaC まとめ
  16. 16. NGINX Galaxy Roles NGINX NGINX Controller NGINX App Protect • nginx (Official Ansible role for NGINX) • nginx_controller_install (Official Ansible role to install NGINX Controller) • nginx_controller_agent • nginx_controller_application • nginx_controller_certificate • nginx_controller_component • nginx_controller_environment • nginx_controller_gateway • nginx_controller_generate_token • nginx_controller_user_role • nginx_controller_licence • nginx_controller_location • nginx_controller_user • ansible_role_nginx_controller_api_definition_import • ansible_role_nginx_controller_publish_api • nginx_app_protect (Official Ansible role for NGINX App Protect) 2020年8⽉時点
  17. 17. F5のAnsible モジュール開発状況 • Ansibleと⼀緒にインストールされる安定版モジュール • 2020年8⽉時点のリスト(166モジュール) https://docs.ansible.com/ansible/latest/modules/list_of_network_modules.html BIG-IP/BIG-IQの サポートされているバージョン
  18. 18. HTTPS://GITHUB.COM/F5NETWORKS/TERRAFORM-PROVIDER-BIGIP F5 Terraform Provider Resources (現在v1.3) • bigip_as3 • bigip_bigiq_as3.html • bigip_sys_iapp • bigip_ltm_virtual_address • bigip_ltm_virtual_server • bigip_ltm_node • bigip_ltm_pool • bigip_ltm_datagroup • bigip_ltm_snat • bigip_ltm_snat_list • bigip_ltm_snatpool • bigip_ltm_irule • bigip_ltm_monitor • bigip_ltm_policy • bigip_ltm_pool_attachment • bigip_ssl_certificate • bigip_ssl_key • bigip_do • bigip_cm_device • bigip_cm_devicegroup • bigip_command • bigip_common_license_manage_bigiq • bigip_net_route • bigip_net_selfip • bigip_net_vlan • bigip_sys_dns • bigip_sys_ntp • bigip_sys_provison • bigip_sys_snmp • bigip_sys_snmp_traps • bigip_ltm_persistence_profile_cookie • bigip_ltm_persistence_profile_dstaddr • bigip_ltm_persistence_profile_srcaddr • bigip_ltm_persistence_profile_ssl • bigip_ltm_profile_fasthttp • bigip_ltm_profile_fastl4 • bigip_ltm_profile_http • bigip_ltm_profile_http2 • bigip_ltm_profile_httpcompress • bigip_ltm_profile_oneconnect • bigip_ltm_profile_tcp • bigip_ltm_profile_client_ssl • bigip_ltm_profile_server_ssl F5 Developed & Open Source Onboarding & HA Virtual Server, App Profiles
  19. 19. 今後やりたいこと • パイプラインを分けて個別に管理 • 周辺ツールの整備
  20. 20. Thank you for listening!
  21. 21. Secrets CLI UI

×