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

Dojo 20231226 Ansible on IBM Z

YasuIchikawa
December 26, 2023
280

Dojo 20231226 Ansible on IBM Z

Ansibleはオープンソースの自動化プラットフォームで、コンピューターの設定管理、アプリケーションのデプロイメント、タスクの自動化、継続的なインテグレーション、ワークフローのオーケストレーションなど、ITタスクを自動化するために使われます。

IBM ZはIBMのメインフレームコンピュータシリーズのブランド名です。メインフレームは大企業や政府機関などで、高い処理能力、信頼性、セキュリティが要求される環境において、大量のデータ処理やトランザクション処理を行うために使用されます。

本セッションでは、IBM ZでAnsibleを動かしてタスクの自動化をします。

YasuIchikawa

December 26, 2023
Tweet

Transcript

  1. ໨࣍ • ࣗݾ঺հ • "OTJCMFͱ͸ • ϝΠϯϑϨʔϜͱ͸ • "OTJCMFͷ࢓૊Έ •

    ϓϨΠϒοΫͷྫ • ίϨΫγϣϯͷྫ • *#.;༻"OTJCMFίϨΫγϣϯ • σϞ؀ڥ • ϦϯΫू • 2" σϞ  -JOVY0/&ͷແྉධՁ؀ڥΛೖख͢Δ  .BDʹ"OTJCMFΛΠϯετʔϧ͠ɺ-JOVY0/&΁ͷ઀ଓςετΛ͢Δ  -JOVY0/&ͷ৘ใΛऔಘ͢Δ1MBZCPPLΛ࣮ߦ͢Δ  ;&YQMPSFϓϩάϥϜʹࢀՃ͠ɺ*#.;ͷֶश༻ΞΧ΢ϯτΛೖख͢Δ  .BDʹ[04ؔ࿈ͷίϨΫγϣϯΛΠϯετʔϧɺ઀ଓͷઃఆΛ͢Δ  "OTJCMF͔ΒίϚϯυ࣮ߦΛૹ৴͠ɺ;ؔ࿈৘ใΛऔಘ͢Δ  "OTJCMF͔Β+$-δϣϒΛ4VCNJU͢Δ
  2. ࣗݾ঺հ ࢯ໊ ࢢ઒ହٱ *5ۀքྺ ೥໨ ৬ྺ *#. ΧελϚʔαΫηεϚωʔδϟʔ ҏ౻஧έʔϒϧγεςϜ ςΫχΧϧαϙʔτ

    .JDSPTPGU ςΫχΧϧΞΧ΢ϯτϚωʔδϟʔ ೔ཱιϑτ΢ΣΞΤϯδχΞϦϯά ςΫχΧϧαϙʔτ౳ ܦݧͷ͋Δ੡඼ *#.੡඼ɺ.JDSPTPGU੡඼ɺө૾ؔ࿈ػثɺετϨʔδ౳ झຯ υϥΠϒ ԰ࠜແ͠ ͱকع؍ઓ
  3. "OTJCMFͷ࢓૊Έ SSH Ansible コントローラ Linux z/OS SSH プレイブック Python Python

    コレクション どのマシンを どういう状態にする どのコレクションを使って 何のタスクをさせるため どのモジュールを実⾏する モジュール1 モジュール2 モジュール3
  4. ϓϨΠϒοΫͷྫ --- - hosts: linuxone tasks: - name: exec uname

    command shell: uname -a register: ret - debug: msg={{ret.stdout}} - name: read redhat-release shell: cat /etc/redhat-release register: ret - debug: msg={{ret.stdout}} - name: exec lscpu command shell: lscpu register: ret - debug: msg={{ret.stdout}}
  5. ίϨΫγϣϯͷྫ BNB[POBXT DPNNVOJUZDJTDPTNC DZCFSBSLQBT OFUBQQBXT BOTJCMFOFUDPNNPO DPNNVOJUZDSZQUP EFMMFNDFOUFSQSJTF@TPOJD OFUBQQB[VSF BOTJCMFQPTJY

    DPNNVOJUZEJHJUBMPDFBO EFMMFNDPQFONBOBHF OFUBQQDMPVENBOBHFS BOTJCMFVUJMT DPNNVOJUZEOT EFMMFNDQPXFSGMFY OFUBQQFMFNFOUTX BOTJCMFXJOEPXT DPNNVOJUZEPDLFS EFMMFNDVOJUZ OFUBQQPOUBQ BSJTUBFPT DPNNVOJUZHFOFSBM GOFUXPSLTG@NPEVMFT OFUBQQTUPSBHFHSJE BXYBXY DPNNVOJUZHSBGBOB GPSUJOFUGPSUJNBOBHFS OFUBQQVN@JOGP B[VSFB[DPMMFDUJPO DPNNVOJUZIBTIJ@WBVMU GPSUJOFUGPSUJPT OFUBQQ@FTFSJFTTBOUSJDJUZ DIFDL@QPJOUNHNU DPNNVOJUZISPCPU GSSGSS OFUCPYOFUCPY DIPDPMBUFZDIPDPMBUFZ DPNNVOJUZMJCWJSU HMVTUFSHMVTUFS OHJOF@JPDMPVETUBDL DJTDPBDJ DPNNVOJUZNPOHPEC HPPHMFDMPVE OHJOF@JPFYPTDBMF DJTDPBTB DPNNVOJUZNZTRM HSBGBOBHSBGBOB PQFOTUBDLDMPVE DJTDPEOBD DPNNVOJUZOFUXPSL IFU[OFSIDMPVE PQFOWTXJUDIPQFOWTXJUDI DJTDPJOUFSTJHIU DPNNVOJUZPLE IQFOJNCMF PWJSUPWJSU DJTDPJPT DPNNVOJUZQPTUHSFTRM JCNRSBEBS QVSFTUPSBHFGMBTIBSSBZ DJTDPJPTYS DPNNVOJUZQSPYZTRM JCNTQFDUSVN@WJSUVBMJ[F QVSFTUPSBHFGMBTICMBEF DJTDPJTF DPNNVOJUZSBCCJUNR JCNTUPSBHF@WJSUVBMJ[F QVSFTUPSBHFGVTJPO DJTDPNFSBLJ DPNNVOJUZSPVUFSPT JOGJOJEBUJOGJOJCPY TFOTVTFOTV@HP DJTDPNTP DPNNVOJUZTBQ JOGPCMPYOJPT@NPEVMFT TQMVOLFT DJTDPOYPT DPNNVOJUZTBQ@MJCT JOTQVSJTQJN U@TZTUFNT@NNTJDJOHB@EJSFDUPS DJTDPVDT DPNNVOJUZTPQT JOTQVSTN UFMFLPN@NNTJDJOHB@EJSFDUPS DMPVEDPNNPO DPNNVOJUZWNXBSF KVOJQFSOFUXPSLTKVOPT UIFGPSFNBOGPSFNBO DMPVETDBMF@DIDMPVE DPNNVOJUZXJOEPXT LVCFSOFUFTDPSF WNXBSFWNXBSF@SFTU DPNNVOJUZBXT DPNNVOJUZ[BCCJY MPXMZECBTRMTFSWFS WVMUSDMPVE DPNNVOJUZB[VSF DPOUBJOFSTQPENBO NJDSPTPGUBE WZPTWZPT DZCFSBSLDPOKVS XUJSFNPUF
  6. *#.;༻"OTJCMFίϨΫγϣϯ 3FE)BU"OTJCMF$FSUJGJFE$POUFOUGPS*#.;͸ɺ[04༻ͷૢ࡞Λߦ͏ػೳΛఏڙ͢ΔϞδϡʔϧͷू·ΓͰ͢ɻ ίϨΫγϣϯ໊ Ϟδϡʔϧ͕Ͱ͖Δ͜ͱ *#.[04DPSF σʔληοτͷ࡞੒ɺδϣϒͷૹ৴ɺδϣϒͷΫΤϦɺ δϣϒग़ྗͷऔಘɺσʔληοτͷΤϯ ίʔυɺσʔληοτͷϑΣονɺσʔλͷίϐʔ ηοτɺΦϖϨʔλʔ ίϚϯυͷ࣮ߦɺ540

    ίϚϯυͷ࣮ߦɺQJOHɺ ΦϖϨʔλΞΫγϣϯͷΫΤϦɺ"1'ೝՄϥΠϒϥϦɺ σʔλ ηοτ· ͨ͸ 6OJYγεςϜ αʔϏε ϑΝΠϧ಺ͷςΩετ σʔλͷฤूɺ σʔληοτͷݕࡧɺσʔλ ηοτͷόοΫΞοϓͱ෮ݩɺ ϘϦϡʔϜͱɺ+$-Λ࢖༻͠ͳ͍ [04ϓϩάϥϜͷ࣮ߦ *#.[04*.4 *.4σʔλϕʔεهड़ࢠ %#% ɺϓϩάϥϜ࢓༷ϒϩοΫ 14# ɺ ΞϓϦέʔγϣϯ੍ޚϒϩο Ϋ "$# ɺ*.4ίϚϯυΛ࣮ߦ͢Δ λΠϓ ɺλΠϓ ɺ%#3$ ɺ*.4Χλϩάͱͷର࿩ɻ *#.[04$*$4 $*$4 ఆٛͱϦιʔεʹର͢ΔఆٛɾΠϯετʔϧɾ࣮ߦɺΠϯετʔϧͱߋ৽ɺఆٛͷ࡟আ *#.[04.BOBHFNFOU 'BDJMJUZ [04ͷૢ࡞ͳͲͷࣗಈԽλεΫΛαϙʔτ͠·͢ɻ ϫʔΫϑϩʔɺ[04.'Λհͨ͠ [04ϛυ ϧ΢ΣΞιϑτ΢ΣΞͷϓϩϏδϣχϯά͓Αͼ؅ཧ 3&45GVMαʔϏε *#.;4ZTUFN "VUPNBUJPO *#.;4ZTUFN"VUPNBUJPO0QFSBUJPOT"1*Λ࢖༻ͨ͠ӡ༻λεΫΛαϙʔτ *#.;).$ *#.;͓Αͼ -JOVY0/& Ϛγϯ্ͷϓϥοτϑΥʔϜ Ϧιʔεɻ ؅ཧͰ͖Δ *#.;ϓϥοτ ϑΥʔϜͷϦιʔεʹ͸ɺύʔςΟγϣϯɺ$16ɺ ϝϞϦɺԾ૝εΠονɺ*0Ξμϓλɺ͓Αͼ ͞·͟·ͳϓϥοτϑΥʔϜ Ϧιʔεɺ ϥΠϑαΠΫϧͱߏ੒ૢ࡞ʹ͍ͭͯ΋આ໌͠·͢ɻ https://ibm.github.io/z_ansible_collections_doc/ibm_zos_core/docs/ansible_content.html
  7. σϞ؀ڥ Ansible コントローラ 74$PEF %PDLFS "OTJCMF  Z Explore [04

    1ZUIPO  [" IBM Cloud Container Registry "OTJCMF  JCN@[PT@DPSF  JCN@[PT@DPSF  LinuxONE Community Cloud &NQFSPS *** -JOVY 1ZUIPO  SSH SSH 1MBZ CPPL 1MBZ CPPL
  8.  -JOVY0/&ͷແྉධՁ؀ڥΛೖख͢Δ -JOVY0/& $PNNVOJUZ$MPVE͸ɺ*#.͕ఏڙ͢Δ-JOVY0/&γεςϜΛ׆༻ͯ͠ ΦʔϓϯιʔείϛϡχςΟ΍։ൃऀ޲͚ʹఏڙ͞ΕΔΫϥ΢υαʔϏεͰ͢ɻ IUUQTEFWFMPQFSJCNDPNBSUJDMFTHFUTUBSUFEXJUIJCNMJOVYPOF ը໘Լ෦ͷ <5SZ7JSUVBM.BDIJOFTPOUIF -JOVY0/& $PNNVOJUZ$MPVE>

    ը૾ΛΫϦοΫ ϝʔϧ৘ใ౳Λೖྗ͠ 3FRVFTUZPVSUSJBM ΛΫϦοΫ ಧ͍ͨϝʔϧͷϦϯΫ͔Βɺ ΞΧ΢ϯτΛ"DUJWBUF IUUQTMJOVYPOFDMPVENBSJTUFEV "DUJWBUFޙʹಧ͍ͨϝʔϧͷ ϦϯΫ͔Βɺ؅ཧπʔϧʹϩάΠϯ ؅ཧπʔϧʹ6TFS*%ͱ ύεϫʔυΛೖྗͯ͠4JHO*O 4FSWJDF$BUBMPH͔Β .BOBHF*OTUBODFTΛΫϦοΫ $SFBUFΛΫϦοΫͯ͠ Ծ૝ϚγϯΛ࡞੒ 04ͱεϖοΫͷબ୒ͱɺ 44),FZͷ࡞੒·ͨ͸ ΠϯϙʔτΛߦ͏ 44),FZΛ৽نʹz$SFBUFz͢Δ৔߹ɺ ೚ҙͷ໊લΛೖྗ͠ɺ z$SFBUFBOFXLFZQBJSz Λ࣮ߦ͢Δͱɺެ։伴ͷμ΢ϯϩʔυ ϓϩϯϓτ͕ग़·͢ͷͰอଘ $SFBUFΛΫϦοΫͯ͠ Ծ૝ϚγϯΛ࡞੒ ؅ཧը໘ʹදࣔ͞ΕΔԾ૝ϚγϯΛ 45"35ͤ͞ɺ*1ΞυϨεɺϢʔβʔ໊ લɺ44),FZΛࢦఆͯ͠઀ଓ
  9.  .BDʹ"OTJCMFΛΠϯετʔϧ͠ɺ-JOVY0/&΁ͷ઀ଓςετΛ͢Δ )PNFCSFXΛ࢖༻ͯ͠Πϯετʔϧ CSFXJOTUBMMBOTJCMF "OTJCMFͷόʔδϣϯ֬ೝ BOTJCMFrWFSTJPO BOTJCMF<DPSF> ҎԼུ "OTJCMF༻ͷIPTUTϑΝΠϧͷ࡞੒ QJOHZNMϑΝΠϧͷ࡞੒

    <MJOVYPOF>  <MJOVYPOFWBST> BOTJCMF@VTFSVTFSOBNF BOTJCMF@TTI@QSJWBUF@LFZ@GJMFd%PXOMPBETUFTULFZQFN QZUIPO@QBUIVTSCJO   IPTUTMJOVYPOF UBTLT  OBNF1JOH5FTU QJOH -JOVY0/&΁ͷTTI઀ଓςετ TTI rJ d%PXOMPBETUFTULFZQFNVTFSOBNF! QJOHZNM࣮ߦ BOTJCMFQMBZCPPLrJ IPTUTQJOHZNM ࣮ߦ݁Ռ 1-":<MJOVYPOF> 5"4,<(BUIFSJOH'BDUT> PL<> 5"4,<1JOH5FTU> PL<> 1-":3&$"1   PL DIBOHFE VOSFBDIBCMF GBJMFE TLJQQFE SFTDVF E JHOPSFE ੒ޭʂ὎
  10.  -JOVY0/&ͷ৘ใΛऔಘ͢Δ1MBZCPPLΛ࣮ߦ͢Δ MJOVYPOFZNMϑΝΠϧͷ࡞੒ --- - hosts: linuxone tasks: - name:

    exec uname command shell: uname -a register: ret - debug: msg={{ret.stdout}} - name: read redhat-release shell: cat /etc/redhat-release register: ret - debug: msg={{ret.stdout}} - name: exec lscpu command shell: lscpu register: ret - debug: msg={{ret.stdout}} MJOVYPOFZNM࣮ߦ BOTJCMFQMBZCPPLrJ IPTUTMJOVYPOFZNM ࣮ߦ݁Ռ ུ֓ -JOVYUFTUNBSJTUFEVFM@TY4.15VF0DU&%5TYTYTY (/6-JOVY 3FE)BU&OUFSQSJTF-JOVYSFMFBTF 1MPX  "SDIJUFDUVSFTY $16PQNPEF T CJU CJU #ZUF0SEFS#JH&OEJBO $16 T   0OMJOF$16 T MJTU  7FOEPS*%*#.4 .BDIJOFUZQF 5ISFBE T QFSDPSF $PSF T QFSTPDLFU 4PDLFU T QFSCPPL #PPL T QFSESBXFS %SBXFS T   $16EZOBNJD.)[ $16TUBUJD.)[ #PHP.*14 %JTQBUDIJOHNPEFIPSJ[POUBM 'MBHT FTBO[BSDITUGMFNTBMEJTQFJNNEGQFEBUFUGFIIJHIHQSTUFWYWYEWYFHTWYFWYQTPSUEGMUTJF )ZQFSWJTPS[7. )ZQFSWJTPSWFOEPS*#. 7JSUVBMJ[BUJPOUZQFGVMM -EDBDIF ,J# JOTUBODFT -JDBDIF ,J# JOTUBODFT -EDBDIF.J# JOTUBODF -JDBDIF.J# JOTUBODFT -DBDIF.J# -DBDIF.J#
  11.  ;&YQMPSFϓϩάϥϜʹࢀՃ͠ɺ*#.;ͷֶश༻ΞΧ΢ϯτΛೖख͢Δ *#.;9QMPSF͸ɺੈքத͔ΒແྉͰར༻Ͱ͖Δɺ՝୊ղܾϕʔεͷֶָ͍͠शϓϥοτϑΥʔϜͰ͢ɻ IUUQTJCN[YQMPSFJOGMVJUJWFDPN ˢ "OTJCMF ϋϯζΦϯ %PDLFSͰ*#.;༻ͷ"OTJCMFΛμ΢ϯϩʔυͯ͠։࢝ EPDLFSSVOJUJCN[YQMPSFBOTJCMFQ "OTJCMFίϯςφΛ74$PEFʹΞλον͢Δ

    [YQZNMͷ*%ͱύεϫʔυΛมߋͯ͠อଘ 1JOH͚ͩ͢Δ1MBZCPPLΛ࣮ߦ͢Δ BOTJCMFQMBZCPPLQJOHZNM 74$PEFʹ:".-֦ுΛΠϯετʔϧ͢Δ ˞:".-ͷจ๏ΤϥʔνΣοΫ༻ (JUIVCͷ"OTJCMFαϯϓϧΛ֬ೝ͢Δ IUUQTJCNHJUIVCJP[@BOTJCMF@DPMMFDUJPOT@EPDJCN@[PT@DPSFEPDT BOTJCMF@DPOUFOUIUNM 74$PEFΛΠϯετʔϧ IUUQTDPEFWJTVBMTUVEJPDPNEPXOMPBE 74$PEFʹ%PDLFSΛΠϯετʔϧ %PDLFS%FTLUPQͷΠϯετʔϧ IUUQTXXXEPDLFSDPNQSPEVDUTEPDLFSEFTLUPQ
  12.  .BDʹ[04ؔ࿈ͷίϨΫγϣϯΛΠϯετʔϧɺ઀ଓͷઃఆΛ͢Δ JCN@[PT@DPSFͱJCN@[PTNG ͷΠϯετʔϧ BOTJCMFHBMBYZDPMMFDUJPOJOTUBMMJCNJCN@[PT@DPSF Πϯετʔϧ͞Ε͍ͯΔίϨΫγϣϯͷ֬ೝ BOTJCMFHBMBYZDPMMFDUJPOMJTU DPMMFDUJPOT $PMMFDUJPO 7FSTJPO

      JCNJCN@[PT@DPSF  PQUIPNFCSFX$FMMBSBOTJCMFMJCFYFDMJCQZUIPOTJUF QBDLBHFTBOTJCMF@DPMMFDUJPOT $PMMFDUJPO 7FSTJPO   BNB[POBXT  BOTJCMFOFUDPNNPO  BOTJCMFQPTJY  BOTJCMFVUJMT  BOTJCMFXJOEPXT  ʢུʣ JCNRSBEBS  JCNTQFDUSVN@WJSUVBMJ[F  JCNTUPSBHF@WJSUVBMJ[F  ʢུʣ IPTUTϑΝΠϧʹ;&YQMPSF઀ଓ৘ใͷ௥ه <[PT>  <[PTWBST> BOTJCMF@QPSU BOTJCMF@VTFS;;;;;; BOTJCMF@QBTTXPSE1"44803% [PBV@IPNFVTSMQQ*#.[PBVUJM QZUIPO@QBUIVTSMQQ*#.DZQWSQZ[ BOTJCMF@QZUIPO@JOUFSQSFUFS\\QZUIPO@QBUI^^CJOQZUIPO @5"(@3&%*3@&33UYU @5"(@3&%*3@*/UYU @5"(@3&%*3@065UYU UHU@UNQ@EJSUNQ DUM@UNQ@EJSUNQ
  13.  "OTJCMF͔ΒίϚϯυ࣮ߦΛૹ৴͠ɺ;ؔ࿈৘ใΛऔಘ͢Δ [PT@TDSJQUΛ࢖༻͢Δ1MBZCPPL[PTZNMͷ࡞੒   IPTUT[PT HBUIFS@GBDUTOP FOWJSPONFOU ;0"6@3005\\[PBV@IPNF^^ ;0"6@)0.&\\[PBV@IPNF^^

    1"5)\\[PBV@IPNF^^CJO\\QZUIPO@QBUI^^CJOCJO -*#1"5)\\[PBV@IPNF^^MJC\\QZUIPO@QBUI^^MJCMJCVTSMJC 1:5)0/1"5)\\[PBV@IPNF^^MJC @#19,@"650$750/z tasks: - name: Get CPU info ibm.ibm_zos_core.zos_operator: cmd: 'D M’ register: ret - debug: msg={{ret}} - name: Get Product info ibm.ibm_zos_core.zos_operator: cmd: 'D PROD,REG’ register: ret - debug: msg={{ret}} 1MBZCPPLͷ࣮ߦ BOTJCMFQMBZCPPLJ IPTUT[PTZNM 130$&440345"564 *%$164&3*"-  $$  *$$  *$$  $$  $$  $1$/%"*#.$$ $1$4**#.$$ .PEFM" $1$*% $1$/".&$1$@6/,/08/@/".& ݁Ռͷൈਮ 408/&3/".&'&"563&7&34*0/*% &*#.$031[04[04;04 /*#.$031[04[04.';04 /*#.$031[04+&4;04 /*#.$031[043"$'   ;04 &*#.$031[044FDVSJUZ4FSWFS   ;04 &*#.$031[044%4'   ;04 &*#.$031[045$1*1#"4&   ;04 &*#.$031[04;&%$;04 /*#.$031[04$POOFDU&&$%3VOUJNF $& /*#.$031;0"6;0"61" 4503"(&4*;&45"564 )*()3&"-4503"(&"%%3&44*4. 3&"-4503"(&45"564 0/-*/&/053&$0/'*(63"#-& .. 0/-*/&3&$0/'*(63"#-& /0/& 1&/%*/(0''-*/& /0/& 4503"(&*/$3&.&/54*;&*4.
  14.  "OTJCMF͔Β+$-δϣϒΛ4VCNJU͢Δ [PT@TDSJQUΛ࢖༻͢Δ1MBZCPPL[PTZNMͷ࡞੒ --- - hosts: zos gather_facts: no environment:

    ZOAU_ROOT: "{{zoau_home}}" ZOAU_HOME: "{{zoau_home}}" PATH: "{{zoau_home}}/bin:{{python_path}}/bin:/bin:." LIBPATH: "{{zoau_home}}/lib:{{python_path}}/lib:/lib:/usr/lib:." PYTHONPATH: "{{zoau_home}}/lib" _BPXK_AUTOCVT: "ON" tasks: - name: Submit JCL in a PDSE member ibm.ibm_zos_core.zos_job_submit: src: Z27649.JCL(J241226A) location: DATA_SET wait: no register: response - debug: msg={{response.jobs[0].job_id}} - name: Query the job status ibm.ibm_zos_core.zos_job_query: job_id: "{{ response.jobs[0].job_id }}" register: job_query_result - debug: msg={{job_query_result}} 1MBZCPPLͷ࣮ߦ BOTJCMFQMBZCPPLJ IPTUT[PTZNM 5"4,<EFCVH> PL<>\ NTH+0# ^ 5"4,<2VFSZUIFKPCTUBUVT> PL<> 5"4,<EFCVH> PL<>\ NTH\ DIBOHFEGBMTF  GBJMFEGBMTF  KPCT< \ KPC@JE+0#  KPC@OBNF+&4+0#  PXOFS;  SFU@DPEF\ DPEF  NTH$$ ^  TVCTZTUFN48  TZTUFN ^ >  NFTTBHF ^ ^ 1MBZCPPLͷ࣮ߦ݁Ռ