Upgrade to Pro — share decks privately, control downloads, hide ads and more …

VMwareで作ったIaaSにAnsible Towerを導入した話

sky_joker
April 18, 2019

VMwareで作ったIaaSにAnsible Towerを導入した話

Ansible Night in Tokyo 2019.04の発表資料です

https://ansible-users.connpass.com/event/125609/

sky_joker

April 18, 2019
Tweet

More Decks by sky_joker

Other Decks in Technology

Transcript

  1. --- -  2 #"/(2 @sky_jokerxx 2  IT 2

    $.")!/,. +-2 - Ansible - OpenShift0%/'*1 2 - .&$ 
  2. 

  3. IaaS$"VMware OpenStack$JT %  GF C-)'02 E IaaS$8"5"W % OSSA

     OpenStack" ISLH  OSP @65BVMware$9  % &3,(.+/3M " #$:RP  4OWW UKRP  >D V ! N<=  ?  N<=*317  XJTIQ W % ; Start automation journey!
  4. (' /%-,;?A9N3 <K5C6 7&$=M?H " ;?4 " 01 64VURO06JMAQYZU=M] UR66M

    *1EW\[_V_O=MD; ?4;;@I=8L>MK5D;?4 .  02 /%E5W1HCBO)#;?4 )#`T^XPS)#aI;?4 /%)# 03 DeepCF3! O;@CMG7  O:>?7C4 2O! ;?4 ! 04 + ;?49A
  5. ixsL#RG<ESM l^m^M$'T • %HCG<K<N/ EFHH?XAI • Go • Python •

    SOAP/REST API • pyvmomi/govmomi • / 2L,VYE@K<y >"C<z 75 • dxk>*&H?XGitHub/GitLab KJI5>H?XAI • Web API!.>BYG<XA I • 7ixs(ZabbixKJ)IAPI 5>H?XAI • ucZ7O CElasticsearch TSplunkKJL W4[H0 CE< DM • _whxor]gMeqxj>"C <y)eqxjLKWE@K<z • `ptxhxHSH?XU=L UI>"C< • \a^wj*&Tuxs ;1 3uc>"C< • vxbnux>WE< • 8><AI • 9 CE< • 6'-HS:(H?XU=;KXP @fwosK+Q>"C<
  6. 8 zŒˆa+A6'#Ž !}o~oa,0 GitHub/GitLabC Web API UI ‰tC vRealize Orchestrator

    (vRO) Ansible Tower TOOL I2 mqo‹{3/J‰Œˆ J>@‰t ŠŒs€‰Œa D F v‹ˆ p‹yŒ†nxu‚Œ{ vRObJava/Javascript\=BUi;OKi Ansible\KjcPython\„w…ŒˆOji ).\GitC\PiabAnsible TowerXZW Web APIb KZW UIb `KZWOJvRObJavam‡\ Qs†nm‹{XZW "%? Sj[LiabAnsible TowerXRXZW vRO\e &_Q_LO).\b_L Ansible Towerb).\KZW *7f9‰t=E_^ `KZW ŠŒs€‰Œb `KZW WXJvRObŠŒs€‰Œ\-Ua4R]NOH… AnsibleaDa O1`L vROb_Q‹|ˆSj[Li|r…ƒ‹{e Nh`QNZW… Ansible Towerb).\F(O\PWDBŽ vRObVMwareaAPI]javascriptl/<T[L_L]GTL Ansible\KjcYAML\M„w…Œˆl5dkV[$Ri ^Yge0:_a\u‚Œ{Kh
  7. Ansible Tower + VMware(NSX) + )"&(* • Edge!$' • Edge

    • IP/vNIC • FW • LB • NAT • BGP • %((  •   •  • %((!$' • %(( • IP/vNIC • Edge  •    •   •  • VM!$' •    •    •  • QoS • #  $ •   • %((  • 
  8. :A€7) "Yiw|G FRSlsG#Ie$G;KSDOO_?@_gKOGBMfNf =G<ROO_  g IOd 2G5PRO • pwrjkhiqwkogaeBAnsiblezn{}eBPlaybook#H

    • PythonY KS`cRO • AnsibleTVMwarezn{}g>,Le $`RS^OƒdFI„ http://ur0.biz/QPOk "YAnsible2.3T%8gKSDOO_BVMwareaor~nzn{}YbdVHmvoWE`X`VFRO ]OBVMwareXNSXYNSX-TZ-4LeO_NSX-Vzn{}>,G[\ (KSDO • ;dVDVMwareaor~nzn{}Y]TXtjujg W>,LeJUWKO • NSX-Vzn{}Ymvo GNSX-TW-4Le]T3 OQTLe6gKO • NSX-Vzn{}: http://ur0.biz/S3rk NSX-Tzn{}: http://ur0.biz/gwtz !XW!g1KO`XgAWX(")XWeb API/+T*KS4KODUDE5GCRO JfY0&uyROXT9.Y'XxnFc‚‚ $A zn{}A Extra VarsA
  9.       Playbook(main.yml)  --- -

    name: Variable expansion test hosts: localhost gather_facts: no tasks: - set_fact: output: Hello, World!! - debug: msg="{{ msg }}" PLAY [Variable expansion test] ******* TASK [set_fact] ****** ok: [localhost] TASK [debug] ******************** ok: [localhost] => { "msg": "Hello, World!!" } PLAY RECAP ********************* localhost : ok=1 changed=0 unreachable=0 failed=0 $ ansible-playbook main.yml -e '{"msg": "{{ output }}"}'
  10. $ Web API(AWX) &%#&…. *01-   $ tower-cli job

    launch -h localhost -u admin -p redhat -J test -e '{"msg": "{{ output }}"}' --insecure .) ' !AWX($+/2 ,! "3 !4 http://u0u0.net/SrH5
  11.      Playbook(main.yml)  http://u0u0.net/C9wl --- -

    name: Variable expansion test hosts: localhost gather_facts: no tasks: - set_fact: output: Hello, World!! - debug: msg="{{ msg | set_ansible_vars(output) }}"
  12. Ansible Tower + GitLab + Linux   GitLab SFQPTJUPSZ

    ᵓᴷᴷIPTU@WBST ᴹ ᵓᴷᴷIPTU@B ᴹ ᵋᴷᴷIPTU@C ᵓᴷᴷSPMFT ᴹ ᵓᴷᴷDPNNPO ᴹ ᴹ ᵋᴷᴷPTTFUVQ ᴹ ᵋᴷᴷXFC@TFSWFST ᴹ ᵓᴷᴷBQBDIF ᴹ ᵋᴷᴷJQUBCMFT ᵋᴷᴷXFC@TFSWFSTZNM Linux  /   • ͩΕ͕ɺ͍ͭɺͳʹΛʢͲͷϑΝΠ ϧΛʣɺͲ͏͍ͬͨ໨తͰ௥Ճɾม ߋɾ࡟আͯ͠ɺ͍࣮ͭߦ༧ఆͳͷ͔ • (JU-BC$*ͷ݁Ռ  • ͩΕ͕ɺ͍ͭɺԿʹରͯ͠ɺԿΛ࣮ ߦ͠ɺ݁ՌͲ͏ͳ͔ͬͨ • ࣌ܥྻʹه࿥͞ΕΔͨΊใࠂॻॻ͘ ࣌ʹศར
  13.  21   origin     

     CI   Linux /    
  14. 07x.% TJP@LNPK8$&k^uclsVo\_tPu_]`l[M;CZR::<4IH • SDQ8AnsiblePqglprcj^g[qygO http://ur0.biz/2uEW • lr_]tx]wmxbry[*X3BN=W1x$BJ:IH PlaybookP#haicQVIJ:H=8M/WNMPewo^dx '/SK=IJN<IH!OQ2>H… •

    GitLab CILDocker[ BJUWIH • FZGZ[ ?JjglzCI{[IJUWIH AWXxAnsible Tower[CY Q"Kfyn[IJ:HHT8"KIHUP[+ OAEY-=9IH • [OBJ5OPlaybookVvyt[IH • IHO6BJ+ OAEH u_]`l7 CIM;CZR::7 "#)(,7
  15. <A5P • AnsibleFPlaybookR!C=P;CB4'ZTfa\R@AZabbixWl^LaiSXE<D9AKM9DPFBGD5 6 • ZabbixG4Ansible TowerF[kahl\I>GjlT_ilR)=PVbk]?:R%2=P0#EB8PFBG • 1F #EMO

    "7QPFBGD56 • IBG)iUGZTfa\B*<A5>74!cYdlgBYe`7QQHAnsible TowerEiUG' B P>J3$.(77PFBGD56 • <>FF O :K+26N-B8P6K<QD5 *F!C/ ,&D)iU
  16. Ansible Tower BCP    DC_1 ESXi Tenant A

    Tenant B DCNW DC_2 ESXi Tenant A Tenant B DCNW     
  17. Ansible Tower     "AL&?]5,6;[x2%^9(9-(J4IO  28 

    "!@)I  *E,#0W/$  \ ZHSVPython'FPlaybook(YAML)1=KFA7KF GitLab'F3QAnsible TowerBD,  BD,  \ Ansible Tower 3Q  <: UM3Q ;[N>P+ C %[.6R  XG6RTYP+ .5  \
  18. Ansible Tower    HB5(6:81#8*:LA@O= MQ"PK  GDFUV Ansible'2:-+:4?

     IE  <T; WX '2:-?  V AnsibleAnsible Jupyter KernelC &:. /%1#,$)5 (6:8JNR>PR!S3:(  &9-706:-V