çŽ1ãæåãç§ã¯ãããŒãã«äžã®ãããããçšã¢ãžã¥ãŒã«ãäœæããïŒã€ãŸããå
éšã€ã³ãã©ã¹ãã©ã¯ãã£çšïŒããããããŠãããŒãµã«ã«ãããããœãŒã¹ãéããŠãããããã©ãŒãžã§å
¬éããããéžæããŸãã ã ãã¡ããã2ã3åŠå¹Žããã°ããã¹ã±ããããŠèœã¡çãããæ¹ãéããŠç°¡åã§ãããã¢ãžã¥ãŒã«ã®å
¬éäžã«åŸãçµéšã¯è²Žéã§ãããå
±æããããšæããŸãã RuNetã«ã¯ãPuppet Development KitïŒä»¥éPDK ïŒã®äœ¿çšã«é¢ããæ
å ±ããªããããããã¯äžçš®ã®ãã¥ãŒããªã¢ã«ãšèããããšãã§ããŸãã
ã«ã€ããŠã®èšäºã¯äœã§ãã
ã¢ãžã¥ãŒã«ïŒãŸãã¯2ã€ïŒãéçºããéçšã§ãã¢ãžã¥ãŒã«ã®éçºãšä¿å®ã®äž¡æ¹ã倧å¹
ã«ä¿é²ããPDKãçºèŠããŸããã ããªãã¡ïŒ
- æçµæŽæ°æã«
metadata.json
èªåçã«ãã©ãŒããããã - 以äžãå®è¡ã§ããããŸããŸãªCIã·ã¹ãã ã®æ§æçæïŒ
- rubocop linterã§ã«ããŒã³ãŒãã確èªãã
- åäœãã¹ãã®å®è¡
- ç¹å®ã®æ¡ä»¶äž-Puppet Forgeã®äœæ¥ã³ãŒãã®èªåå
¥å
- yardã䜿çšããã³ã¡ã³ãå
ã®ã¿ã°ããŒã¹ã®ããã¥ã¡ã³ãã®çæ
[PDK]
ã®ã¢ãžã¥ãŒã«çšã®ãã¬ãŒã[PDK]
ã äºçްãªããšã§ãããçŽ æŽãããïŒ
ãã¹ãŠã®èå³ ç«ããé¡ãããŸãïŒ
äŸãšããŠ
èªã¿åãããã»ã¹äžã«äœãæå³ããã®ããèŠãŠãæãããå Žåã¯ãèšåãããŠãã2ã€ã®ã¢ãžã¥ãŒã«ã®äžæ¹ïŒãŸãã¯äž¡æ¹ïŒã clickhouseãšxmlsimpleãéãããšãã§ããŸãã ã©ã¡ãããèšäºã«èšèŒãããŠããPDKããã³ãã®ä»ã®ããŒã«ã䜿çšããŠéçºãããŸããã
å
容
PDKãšã¯
å
¬åŒææžããïŒ
ã¯ã©ã¹ãå®çŸ©æžã¿ã®ã¿ã€ããã¿ã¹ã¯ãå«ãå®å
šãªã¢ãžã¥ãŒã«ãäœæããäœæ¥ããã¹ãããŠæ€èšŒããŸãã PDKã¯ãå®å
šãªã¢ãžã¥ãŒã«æ§é ãã¯ã©ã¹ã®ãã³ãã¬ãŒããå®çŸ©ãããã¿ã€ããã¿ã¹ã¯ãããã³ãã¹ãã€ã³ãã©ã¹ãã©ã¯ãã£ãæäŸããŸãã ããŸããŸãªãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ããã³è€æ°ã®PuppetããŒãžã§ã³ã«å¯ŸããŠã¢ãžã¥ãŒã«ãæ€èšŒããã³ãã¹ãã§ããŸãã
ç§ã®ç¡æç¿»èš³ã§ïŒ
ã¯ã©ã¹ãã¿ã€ããã¿ã¹ã¯ãããã³ãã¹ããå«ãå®å
šãªã¢ãžã¥ãŒã«ãäœæããŠãã¢ãžã¥ãŒã«ã®åäœãæ€èšŒã§ããŸãã PDKã¯ãäžèšã®ãã¹ãŠã®å®å
šãªæ§é ãšãã³ãã¬ãŒããæäŸããŸãã ãã®ããŒã«ã䜿çšãããšãããŸããŸãªããŒãžã§ã³ã®ãããããããã³ç°ãªããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã§ã¢ãžã¥ãŒã«ã®åäœã確èªã§ããŸãã
ããã§ããïŒ ãŸããããã¯æ¬åœã«ããã§ãã ãªãŒãã³ãœãŒã¹çšã«ããã«æžãããšã決å®ãããã¢ãžã¥ãŒã«ã®äœæ¥ãéå§ããç¬éãŸã§ãç§ã¯ãã®ããŒã«ãçããªãã£ãã®ã§ãPDKã䜿çšããããã«å
éšã€ã³ãã©ã¹ãã©ã¯ãã£å
šäœã移転ããã€ããã§ãã
ãããã©ã®ããã«çœ®ããããããŠã©ã®ããŒã«ãšã³ãã³ããå«ãŸããŠãããã説æããŸãã
èšçœ®
å
¬åŒã€ã³ã¹ããŒã«ããŒãž ã ãã®ãªã³ã¯ã䜿çšãããšããã¹ãã«PDKãã€ã³ã¹ããŒã«ããæ£ããæ¹æ³ãèŠã€ããããšãã»ãŒä¿èšŒãããŸãã äœããã®çç±ã§éãè¯ããªããOSãããã«ãªãå Žåã¯ã次ã®åœ¢åŒã®ã©ãŠã³ãã¢ããŠããåžžã«ãããŸãã
gem install pdk
å®éãPDKã¯åãªãå®ç³ã§ããããã®ããã«èšå®ãããŠããŸãã
PDKã³ã³ãã³ã
äžè¬ã«ãPDKã¯ã¢ãžã¥ãŒã«éçºãä¿é²ããããã®å®ç³ã®ã»ããã«ãããŸããã æ¬¡ã®ããŒã«ãå«ãŸããŠããŸãã
å®çšæ§ | 説æ |
---|
metadata-json-lint | äžèŽããããããã¹ã¿ã€ã«ã¬ã€ãã®metadata.jsonããã§ãã¯ããŸã |
pdk | ã³ãã³ãã©ã€ã³ããã¢ãžã¥ãŒã«ãšãã®å
容ïŒã¯ã©ã¹ãã¿ã€ããªã©ïŒãçæããã³ãã¹ãããããã®ããŒã« |
æã人圢 | Puppetèšèªã¹ã¿ã€ã«ã¬ã€ãã®ããããã³ãŒãããã§ãã¯ããŸã |
ããããæ§æ | ãããã§ã¹ãã®æ§æã確èªãã |
puppetlabs_spec_helper | ããããã³ãŒãã®ã¹ããã¯ãã¹ãçšã®Rakeã¯ã©ã¹ãã¡ãœãããããã³ã¿ã¹ã¯ãæäŸããŸã |
rspec-puppet | ãããã§ã¹ãããªãœãŒã¹ãã£ã¬ã¯ããªã«ã³ã³ãã€ã«ãããšãã«ããããã®åäœããã¹ãããŸãïŒïŒïŒ |
rspec-puppet-facts | ãŠãŒã¶ãŒæå®ã®ãããããã¡ã¯ãã§rspec-puppetãå®è¡ã§ããŸã |
ã¢ãžã¥ãŒã«ãäœæãã
PDKãã€ã³ã¹ããŒã«ãããã®ã§ããããã詊ããŠã¿ãŠãã ããã æãåçŽãªpdk help
ã³ãã³ãpdk help
ã䜿çšå¯èœãªã³ãã³ãpdk help
衚瀺ããŸãã ä»ã®ãã¹ãŠã®ã¢ãžã¥ãŒã«ããããã©ã«ããŒã«ãããšããŸãã æ¬¡ã«ãæ°ãããã®ãäœæããŸãããã
$ pdk new module --template-url=https://github.com/puppetlabs/pdk-templates.git *** We need to create the metadata.json file for this module, so we're going to ask you 5 questions. *** [Q 1/5] If you have a name for your module, add it here. --> dummy [Q 2/5] If you have a Puppet Forge username, add it here. --> felixoid [Q 3/5] Who wrote this module? --> Mikhail f. Shiryaev [Q 4/5] What license does this module code fall under? --> MIT [Q 5/5] What operating systems does this module support? --> RedHat based Linux, Debian based Linux, Windows Metadata will be generated based on this information, continue? Yes pdk (INFO): Module 'dummy' generated at path '/tmp/dummy', from template 'https://github.com/puppetlabs/pdk-templates.git'.
ãŠãŒãã£ãªãã£ã¯ãmetadata.jsonãã¡ã€ã«ã«å
¥åããããã«è³ªåããŸããåºåã«ã¯ã瀺ãããŠãããšãããgitã®ãã³ãã¬ãŒãããã³ã³ãã€ã«ãããã¢ãžã¥ãŒã«ãã¡ã€ã«ãšè£å©ãã¡ã€ã«ãå«ãŸããŠããŸãã
å°ããªçºèš-temliteã¯ãæè¿ä¿®æ£ãããããã€ãã®é倧ãªãã°ãå«ããéåžžã«é »ç¹ã«å€æŽãããŸãã ãããã£ãŠãã€ã³ã¹ããŒã«ãããŠããPDKã®ããã©ã«ãã§ã¯ãªããææ°ããŒãžã§ã³ã䜿çšããããšããå§ãããŸãã --template-url
ã«ããã€ãã¹é¢ããããŸãïŒ --template-url
åŒæ°ã䜿çšãããšãPDKã¯ãã®ãã©ã¡ãŒã¿ãŒã~.pdk/cache/answers.json
ã«è¿œå ãã pdk
ã³ãã³ãã®å®è¡ãé
ãããšå€æããŠãããããããŠã³ããŒãããããšããŸãã ãããã£ãŠã answers.json
ãããã®ãã©ã¡ãŒã¿ãŒãåé€ããããã¢ãžã¥ãŒã«ãäœæããŠmetadata.json
倿Žãããšãã«äœ¿çšããªãã§ãã ããã
PDKã䜿çšããŠå®è¡ã§ãããã®ä»ã®æé ãèŠãŠãããŸãããã
æ°ããã¯ã©ã¹
$ pdk new class dummy::class pdk (INFO): Creating '/tmp/dummy/manifests/class.pp' from template. pdk (INFO): Creating '/tmp/dummy/spec/classes/class_spec.rb' from template. $ cat manifests/class.pp # A description of what this class does # # @summary A short summary of the purpose of this class # # @example # include dummy::class class dummy::class { } $ cat spec/classes/class_spec.rb require 'spec_helper' describe 'dummy::class' do on_supported_os.each do |os, os_facts| context "on #{os}" do let(:facts) { os_facts } it { is_expected.to compile } end end end
ãã®ã³ãã³ãã¯ã2ã€ã®ãã¡ã€ã«ãäœæããŸããã¯ã©ã¹ã®ãããã§ã¹ããšããã¹ãçšã®ä»æ§ãã¡ã€ã«ã§ãã ããã¥ã¡ã³ãã®ã¿ã°ã«ã€ããŠã¯ãåŸã§è©³ãã説æããŸãã
æ°ããdefined_type
$ pdk new defined_type type pdk (INFO): Creating '/tmp/dummy/manifests/type.pp' from template. pdk (INFO): Creating '/tmp/dummy/spec/defines/type_spec.rb' from template.
ãã¹ãŠåãïŒãªãœãŒã¹ã¿ã€ããšä»æ§ãã¡ã€ã«ã®ãããã§ã¹ãã
æ°ãããããã€ããŒãšã¿ã¹ã¯
PDKã¯æ°ãããããã€ããŒãã¿ã¹ã¯ãäœæããããšãã§ããŸãããç§ã¯ããããšå¯æ¥ã«é£æºããŠããªãã£ããããå¿
èŠã«å¿ããŠãã®ãããã¯ãããæ·±ãç ç©¶ããããšããå§ãããŸãã
ããããæååã䜿çšããããã¥ã¡ã³ãã®çæ
puppet strings
PDKããŒã«ãããã®äžéšã§puppet strings
ãªãçç±ã¯ããããããŸããããããã¯äžèŠãããšããã§ãã éçºäžã«ã€ãŒãã®ã¿ã°ãæ£ããèšå®ããå ŽåããŠãŒã¶ãŒã«ããã¥ã¡ã³ããæäŸããäž»ãªæ¹æ³ã¯2ã€ãããŸãã
- HTML / Markdown / JSONãšããŠçæããã³ãŒãã®é£ã«çœ®ããŸãã ããã¯ã
puppet string generate [--format FORMAT]
ã³ãã³ãã§è¡ãããŸãããã®ã³ãã³ãã§ã¯ããã©ãŒããããçç¥ãããã json
/ puppet string generate [--format FORMAT]
èšå®ãããã§ããŸãã
- ããã¥ã¡ã³ãã®æšæºãšããŠã
puppet strings generate --format markdown
ã«ãã£ãŠçæããããªããžããªã®ã«ãŒãã«REFERENCE.md
ãã¡ã€ã«ã眮ãã®ãäžè¬çã§ãã
- ã³ãŒãã䜿çšããŠãªããžããªã«å
¬éããŸãïŒgithubã«ããå ŽåïŒgithub-pagesã ããã¯éåžžã«ç°¡åã§ã3ã€ã®ã³ãã³ããå¿
èŠã§ãã
éæ³ã§ã¯ãªãããã§ãããåºåã«ã¯åœä»€ã®ããã¢ãžã¥ãŒã«ããããŸãã ãã©ã¹ã¯ãããšãã°@param
ã¿ã°ã䜿çšããŠåãã©ã¡ãŒã¿ãŒãèšè¿°ããªããŠããåºåã¯ã¯ã©ã¹ãšã¿ã€ã/颿°ã§ããããã©ã¡ãŒã¿ãŒã®æå°éã®èšè¿°ã¯ã¿ã€ããšããã©ã«ãå€ã§ãããšããããšã§ãã ç§ã®è¬èãªæèŠã§ã¯ãããã§ãããäœããªãããã¯ãŸãã§ãããã¢ãžã¥ãŒã«ã®äœ¿çšãããé
åçã«ãªããŸãã
ãã¡ãããããã¯ãã¹ãŠèªååã§ããCIã¹ããŒãžãšããŠè¿œå ã§ããŸãã ããã¯å®ç§ãªãªãã·ã§ã³ã§ãã ç§ã®æã¯ãŸã å°éããŠããŸããããæªåŠçåã«ã»ãããããŸã£ãŠããŸãã çªç¶èª°ãããã®ãããã¯ã«ã€ããŠäœãèšãããããšãããã°-ç§ã¯æè¬ããŸãã èããšããŠïŒå°ãªããšããpuppet-stringsã®å®è¡åŸã«REFERENCE.mdã倿Žããããã©ããã確èªãããã§ãã¯ã远å ããŸãã ãããããªãããã¹ãã倱æãããšèããŠãã ããã
ãã³ãã¬ãŒãã®ã«ã¹ã¿ãã€ãº
ãã³ãã¬ãŒãã®ããã¥ã¡ã³ãã¯ã pdk-templatesãªããžããªã«ãããŸãã ã€ãŸããã¢ãžã¥ãŒã«ã®ã«ãŒããã£ã¬ã¯ããªã«ãã.sync.yml
ãã¡ã€ã«ã䜿çšããŠãã¹ãŠãæ§æãã pdk update
ã³ãã³ãã䜿çšããŠå€æŽãé©çšããŸãã ãã®ãã¡ã€ã«ã®åãã©ã¡ãŒã¿ãŒã¯ãã¢ãžã¥ãŒã«ã®ãã£ã¬ã¯ããªã«ããå¥ã®ãã¡ã€ã«ã®ååã§ãããäœããã®æ¹æ³ã§å€æŽããå¿
èŠããããŸãã åãã³ãã¬ãŒãã®ãã©ã¡ãŒã¿ãŒã®ã»ãšãã©ã¯ããã¿ãããã§éžæããå¿
èŠããããå€ãã®å Žåã詊è¡é¯èª€ã«ãã£ãŠãœãŒã¹ã³ãŒãã確èªããŸããã ããã§ã®ããã¥ã¡ã³ãã¯ãé
ããããšããããŸãã æ®å¿µãªãããããªãèªèº«ã®ãªããžããªããã®äŸãžã®ãªã³ã¯ãæäŸããããšãé€ããŠãèšãããšã¯ã»ãšãã©ãããŸããã
äžèšã®äŸãã.sync.yml
ã䜿çšããŠå€æŽããããã€ãã®ãã©ã¡ãŒã¿ãŒãéåžžã«.sync.yml
ã«èª¬æããŸãã
Gemfile
ïŒ2ã€ã®Gemfile
ãç°ãªãã°ã«ãŒãã®äŸåé¢ä¿ãšããŠè¿œå ãããŸãããéçºã°ã«ãŒãã®pdkã äŸåé¢ä¿ã°ã«ãŒãã®xml-simpleã ãã¹ããéå§ãããšãã«ãsystem_testsã°ã«ãŒããã€ã³ã¹ããŒã«ãããŠããªããããäŸåé¢ä¿ãå¥ã®ã°ã«ãŒãã«è¿œå ããŸããspec/spec_helper.rb
ïŒã¢ãŒãã³ã°ã¡ãœããã倿Žããããã¹ãã«ãã¬ããžã®æå°ãããå€ã远å ãããŸããããããäžåããšããã¹ãã¯å€±æãããšèŠãªãããŸãã.travis.yml
ïŒãã®ãã¡ã€ã«ã¯ãã³ãŒãããŒã¹ã確èªãã宿ããã¢ãžã¥ãŒã«ãpuppet-forgeã«ããŒãããããã«äœ¿çšããããããé·ãéæŽç·ŽãããŠããŸãã 倿Žç¹ïŒ
- puppet-forgeã®ã¢ãžã¥ãŒã«ã«å
¥åããããã®ãŠãŒã¶ãŒããã³æå·åããããã¹ã¯ãŒãã Travisã䜿çšããpuppet-forgeã®ãããã€ã®è©³çްã«ã€ããŠã¯ã ãã¡ããã芧ãã ãã ã
- ãã¹ãã®ã·ãŒã±ã³ã¹ãäœæããããã¹ããæåããå Žåã«ã®ã¿åŸè
ãèµ·åããŠå±éããŸããã
- CIãæåãvãã§å§ãŸãã¿ã°ããèµ·åãããå Žåãã¢ãžã¥ãŒã«ãpuppet-forgeã«ãããã€ããã¹ããŒãžã远å ããŸããã
Rakefile
ïŒãªã³ã¿ãŒã«ããã€ãã®äŸå€ã远å ããŸããã
ããŸããŸãªCIã®å®è¡
ããã§ã¯ãã¹ãŠãéåžžã«ç°¡åã§ãã PDKã䜿çšããŠã¢ãžã¥ãŒã«ãçæããçŽåŸã«ãappveyorãtravisãgitlab-ciã§æ€èšŒãéå§ãããŸãã ãã¹ããå®è¡ããã«ã¯ãããã«ãã¹ãŠã®æºåãæŽãããã¥ãŒãã³ã°ã«.sync.yml
åã.sync.yml
䜿çšãããŸãã ç¹ã«å¥œã¿ã¯ãªãã®ã§ãäœããå§ãããŸããã ãã䟿å©ãªãã®ã䜿çšããŠãã ããã
ããŒãã¹ïŒã¯ã©ã¹ãåã颿°ã®åäœãã¹ããäœæããŸã
ãã®ç¹ã¯ãç§ã説æããããšæã£ãŠããäž»èŠãªè³æã®æ çµã¿ãããªãè¶
ããŠããŸãããç§ã«ã¯éåžžã«åœ¹ç«ã€ããã§ãã
ãã®ããããããã§ã¹ããšã©ã€ãã©ãªãåããã¢ãžã¥ãŒã«ãããããã®äžã«ã¯ã©ã¹ãåãããã³é¢æ°ãå«ãŸããŠããŸãïŒã¿ã¹ã¯ãšãããã€ããŒãå¿ããŸãããããã®éšåã«ã¯å°éç¥èããããŸããïŒã 倿Žãç®çãšããã³ãŒããååšãããããæããã«ããã¹ãã§ãªãŒããŒã¬ã€ããŠ2ã€ã®ããšã確èªããããšããå§ãããŸãã
- 倿Žã«ãã£ãŠçŸåšã®åäœãäžæãããããšã¯ãããŸããïŒãŸãã¯ãã¹ãã«ããåäœã®å€æŽïŒ
- ãããã§ã¹ãã¯æåŸ
ã©ããã«æ©èœããæåŸ
ãããã¹ãŠã®ãªãœãŒã¹ã䜿çšããŸãã
Puppetlabsã¯ã puppet-rspecãšåŒã°ããrspecãã¬ãŒã ã¯ãŒã¯ã®æ¡åŒµæ©èœãæäŸããŸãã ã¯ã©ã¹ ã åãããã³é¢æ°ããã¹ãããããã®ããã¥ã¡ã³ããžã®ãªã³ã¯ã ããèŠãããã«æ closelyã«ãªããªãã§ãã ãããä»ã®ã»ã¯ã·ã§ã³ããããŸãã
ã«ããŒãç¥ããªããŠãã䜿ãå§ããã®ã¯éåžžã«ç°¡åã§ãã äžèšã®ããã«ã pdk new <thing>
ã䜿çšããŠã¯ã©ã¹ãŸãã¯ã¿ã€ããäœæãããå Žåã *_spec.rb
ãã¡ã€ã«ããã§ã«ååšããŸãã ãããã£ãŠã dummy::class
ãŸãã ãã¹ãããã«ã¯ã次ã®å
容ã®spec/classes/class_spec.rb
ãã¡ã€ã«ãäœæããå¿
èŠããããŸãã
require 'spec_helper' describe 'dummy::class' do on_supported_os.each do |os, os_facts| context "on #{os}" do let(:facts) { os_facts } it { is_expected.to compile } end end end
ã¢ãžã¥ãŒã«ã®ã«ãŒããã£ã¬ã¯ããªããpdk test unit
ãå®è¡ããŠç¢ºèªã§ããŸãã
ãããç§ãã¡ãå¿
èŠãšããã»ãšãã©ãã¹ãŠã§ãã ããã§ãé©åãªæ¡ä»¶ã§å¿
èŠãªis_expected
ã§class_spec.rb
ãè£ãããšãã§ããŸãã ããšãã°ãã¯ã©ã¹ã«ç¹å®ã®ãã©ã¡ãŒã¿ãŒãæã€file {'/file/path': }
ãªãœãŒã¹ãå«ãŸããŠããããšã確èªããã«ã¯ã次ã®ããã«ããŸãã
it do is_expected.to contain_file('/file/path').with( 'ensure' => 'file', 'mode' => '0644' ) end
let(:params) { {'param1' => 'value'} }
ã䜿çšããŠã¯ã©ã¹ãã©ã¡ãŒã¿ãŒãèšå®ã§ããŸãã context 'some description' {}
ã®éžæããã»ã¯ã·ã§ã³å
ã«åãã©ã¡ãŒã¿ãŒãé
眮ããit
ã§ãããŸããŸãªå
¥åæ¡ä»¶ã§ãã¹ããå®è¡ã§ããŸãã ãªãœãŒã¹éã®äŸåé¢ä¿ãšã¯ã©ã¹éã®äŸåé¢ä¿ã®äž¡æ¹ããã§ãã¯ã§ããŸããããšãã°ãã¯ã©ã¹å®£èšã«inherits
ãå«ãŸããŠãããšæ³å®ãããå Žåã is_expected.to contain_class('parent_class_name')
ãã§ãã¯ã远å ã§ããŸãã ç°ãªãOSã§åäœã確èªããå¿
èŠããããŸããïŒ å¯èœæ§ããããŸããå¿
èŠãªäºå®ãå¥ã®ã³ã³ããã¹ãã§åã«ç€ºããŸãã
context 'with Debian' do let(:facts) do { os: { architecture: 'amd64', distro: { codename: 'stretch', id: 'Debian', release: { full: '9.6', major: '9', minor: '6', }, }, family: 'Debian', name: 'Debian', release: { full: '9.6', major: '9', minor: '6', }, selinux: { enabled: false, }, }, osfamily: 'Debian', } end it { is_expected.to something } end
äžè¬ã«ããã¹ããäœæããéçšã§ãªããšãæ°ä»ãéãããã®ãã¬ãŒã ã¯ãŒã¯ã䜿çšãããšãå¿
èŠãªã»ãŒãã¹ãŠã®ãã®ããã§ãã¯ã§ããŸãã ãŸãããã¹ãã®ååšã¯ãããã€ãã®ãã©ã¡ãŒã¿ãŒãåã¯ã©ã¹ããã¢ãžã¥ãŒã«ã®ãããã¯ã©ã¹ã«ç§»åãããšãã«åœ¹ç«ã¡ãŸããããªãã¡ã¯ã¿ãªã³ã°ã¯äœãç Žå£ãããã¢ãžã¥ãŒã«å
šäœã®åäœã¯å€ãããªãããšã瀺ããŸããã
åºåã®ä»£ããã«
èšäºã®äžè¬çãªã€ã³ãããŒã·ã§ã³ããæ¢ã«çè§£ã§ããããã«ãPDKã®ãããã§Puppetãã¢ãžã¥ãŒã«ãšãããã§ã¹ããç°¡åã«æäœã§ããããã«ãªã£ãããšã«å€§ãã«åæ°ã¥ããããŸãã 宿çãªã¢ã¯ã·ã§ã³ã¯èªååããããã³ãã¬ãŒãã¯å¯èœãªéã䜿çšãããäžè¬çãªCIã®æ§æã¯ããã¯ã¹ããå©çšã§ããŸãã ããã¯äžçš®ã®ãªãŒããŒãããã®ããã«æãããããããŸããããããŠã䜿çšã¯æåŸ
ãããæç©ããããããªããããããŸããããããã¯ééããªã䟡å€ããããŸãã PDKã䜿çšããªãå Žåãšäœ¿çšããå Žåã®ã¢ãžã¥ãŒã«ã®éçºæ¹æ³ãæ¯èŒãããšãç§ã«ãšã£ãŠã¯æ¬¡ã®ããã«ãªããŸãã
ãªãã®éçº ããã²ã PDK | PDKéçº |
---|
 |  |
èªåèªèº«ãååã®çæŽ»ãæ¥œã«ããŠãã ããã æœåšçãªè³ªåã«åãã§ãçãããŸãã
é§åãç§ãã¡ãšå
±ã«ãããŸãããã«ïŒ