èŠããã«ïŒ
- cftotalcontrolã¯ãä»ã®ã€ã³ãã©ã¹ãã©ã¯ãã£ããŒããžã®SSHã¢ã¯ã»ã¹ã䜿çšããŠç¹å¥ãªã¢ã«ãŠã³ãç°å¢ãäœæãã倧éã®ã«ãŒãã³ã¿ã¹ã¯ã䞊è¡ããŠå®è¡ããããã®ã¢ãžã¥ãŒã«ã§ãã
- ã€ã³ãã©ã¹ãã©ã¯ãã£ãžã®å®å
šã§å¶åŸ¡ãããã¢ã¯ã»ã¹ãçµç¹åããçè«ãå®è£
ããæœè±¡åã
- ç¹å®ã®ãœãªã¥ãŒã·ã§ã³ã®å®éã®ã¢ããªã±ãŒã·ã§ã³ã«ã€ããŠèª¬æããŸãã
ããŒããµã€ã¯ã«ïŒ
ã€ã³ãã©ã¹ãã©ã¯ãã£ãžã®ã¢ã¯ã»ã¹ãæŽçããæŠå¿µ
ãã¡ããããã®èšäºã¯ç¶²çŸ
çãªã¬ã€ãã§ã¯ãããŸããã ããã§ããããããããããããã«ããµãŒããŒãžã®ç®¡çè
ã¢ã¯ã»ã¹ã®å
žåçãªäŸãèããŠã¿ãŸããããå管çè
ã¯èªåã®ç§å¯éµãæã¡ã管çããŠãããµãŒããŒã«çŽæ¥ã¢ã¯ã»ã¹ããŸãã

ãã®ã¢ãããŒãã«ã¯ããã€ãã®æ¬ ç¹ããããŸãã
- åãµãŒããŒã®å管çè
ã®å
¬ééµãç»é²ããå¿
èŠã
- Puppetãä»ããŠæ°ããããŒãåŠæ¹ããããšã¯åé¡ã§ã¯ãããŸããããå©çšå¯èœãªãã¹ãŠã®ã·ã¹ãã ã§å®éã®æ§æå€æŽãå¿
èŠã§ãã
- 管çè
ã®ä»»æã®å Žæããåã·ã¹ãã ãžã®ãšã³ãããŒãšã³ãã¢ã¯ã»ã¹ãæŽçããå¿
èŠæ§ã
- å€ãã®å ŽåãSSHãšãŒãžã§ã³ã転éã¯ããã«å¯ŸããŠå±éºã§ãã
- DNATã䜿çšããŠãå®å
šã«æè»æ§ã®ãªããœãªã¥ãŒã·ã§ã³ã«åºãããããšããããŸãã
- åã·ã¹ãã ãããã¯ããŠãã¹ãŠã®ç®¡çIPããã³/ãŸãã¯ããŒããéãããšããããçãããæ±ºå®ã§ãã
- å管çè
ã¯ãå
±éã®ãŸãã¯ç¬èªã®SSHæ§æãšã«ãŒãã³ã¿ã¹ã¯çšã®äžé£ã®ã¹ã¯ãªãããæåã§ç¶æããæééãã«æŽæ°ããå¿
èŠããããŸãã ããã«ããããšã©ãŒãçºçããããšãä¿èšŒãããŸãã
- ã·ã¹ãã ã®æ°ãå¢ãããšãã€ã³ãã©ã¹ãã©ã¯ãã£å
ã®ã¢ã¯ã»ã¹çµç¹ã®ç£æ»ã¯éèŠãªã¿ã¹ã¯ã«å€ãããŸãã
- çŽæ¥çãªéäžç®¡çïŒå®æœïŒã¯æ±ºå®ãããŠããŸããã
- ãã¡ãããã€ãã³ãã¢ãã«ã«åºã¥ããããŸããŸãªãœãªã¥ãŒã·ã§ã³ããããŸããããã®å®å
šæ§ã«ã¯çåãçããŸãã Puppetèªäœã«ã¯ããã®ããã®MCollectiveããããŸãã
æ¯èŒã®ããã«ããã¡ã€ã³ã°ã«ãŒã圢åŒã®æ¡ä»¶ä»ãã€ã³ãã©ã¹ãã©ã¯ãã£ç®¡çè
ã«ããã¢ã¯ã»ã¹ãæ€èšããŠãã ããã

ãã®ã¢ãããŒãã®åŒã³æ¹ã¯ç°ãªããŸãããäœããã®åœ¢ã§ãçµ±åãããåçšãœãªã¥ãŒã·ã§ã³ã«é·ãéååšããŠããŸããã éåžžãããã¯ç¹æš©ãŠãŒã¶ãŒã®ãã¡ã€ã³ã°ã«ãŒããéããŠå®è£
ãããã€ã³ãã©ã¹ãã©ã¯ãã£ã·ã¹ãã ã®ãã¹ãŠãŸãã¯äžéšã«ã¢ã¯ã»ã¹ã§ããŸãã ãã®ã¢ãããŒãã«ã¯ãåã®æ¹æ³ã®ããã€ãã®æ¬ ç¹ïŒ2ã3ãããã³5ïŒã«å ããŠæãããªãã¥ã¢ã³ã¹ããããŸã-èªèšŒããã³èš±å¯ãµãŒãã¹ã®åžžæå¯çšæ§ã®å¿
èŠæ§ïŒãã¡ããããã£ãã·ã¥ãªãã§ã¯ãããŸããïŒã ãšããã§ãPAMãšLDAPã䜿çšããŠäŒŒããããªãã®ãæŽçããããšã¯ããã»ã©é£ãããããŸããã
ãã®ããã cftotalcontrol
å®è£
ãããã¢ã¯ã»ã¹æŠå¿µã®æäžéšã«ããã«cftotalcontrol
ã

æ¬è³ªçã«ããã®ã¢ãããŒãã¯ä»¥åã®2ã€ã®æ¹æ³ãçµã¿åããããã®ã§ãã
- ã¢ã¯ã»ã¹ã«ã¯ã远å ã®ãµãŒãã¹ãªãã§SSHã®ã¿ã䜿çšãããŸãã Puppetã¯ãèªèšŒããŒãé
åžãããå Žåã«ã®ã¿äœ¿çšãããŸãã
- 管çãŠãŒã¶ãŒãå°å
¥ãããŸã-管çè
ãæ¥ç¶ãããŠããã€ã³ãã©ã¹ãã©ã¯ãã£ã®ç¹ã«å®å
šãªããŒãäžã®ç¹å¥ãªã¢ã«ãŠã³ãã æœè±¡çã«ã¯ããã®ãããªã¢ã«ãŠã³ãã¯ç®¡çè
ã®ã°ã«ãŒãã§ãã
- ã·ã¹ãã èªäœãã管çãŠãŒã¶ãŒã®äžéããŒããšSSHã¯ã©ã€ã¢ã³ããæ§æããŸãã èªèšŒããŒã®æå°æ°ã¯ã·ã¹ãã ã«ç»é²ãããŠãããããŒãã®æ°ãšç®¡çè
ã®æ°ã®äž¡æ¹ã®å¢å ã«å¿ããŠé©åã«æ¡åŒµãããŸãã
- 管çè
ã®è·å Žã§ã¯ã管çã¢ã«ãŠã³ããžã®æ¥ç¶ãé€ããæ§æã¯å¿
èŠãããŸããã
- å®å
šã«å¶åŸ¡ãããã¢ã«ãŠã³ãã«ããããžã£ãŒããªã³ã°ã§ç®¡çè
ã®ã¢ã¯ã·ã§ã³ãç°¡åã«ç£æ»ã§ããŸãã ç¹ã«ç¹æš©ã®äœãã°ã«ãŒãã«åœ¹ç«ã¡ãŸãã
- 倿°ã®ã·ã¹ãã ãå®è¡ããããã®æ¢è£œã®ãœãªã¥ãŒã·ã§ã³ããããŸãã
- 䜿çšå¯èœãªãã¹ãŠã®ããŒãã§ã³ãã³ããå®è¡ã§ããŸãã
- PuppetDBã§ã®èŠæ±ã«å¿ããŠãéçãŸãã¯åçã«ã°ã«ãŒãå
ã®ããŒããå®çŸ©ã§ããŸãã
- 察話ã¢ãŒãã§ã³ãã³ããé çªã«å®è¡ã§ããŸãã
- äžŠåæ¥ç¶ã®æå€§æ°ãå¶éããŠã³ãã³ãã䞊è¡ããŠå®è¡ããå®äºæã«ã³ãã³ãã®åºåãåãåãããšãã§ããŸãã
- ã«ãŒãã³ã¿ã¹ã¯ã®å ŽåãåããŒããããŒãã®ã°ã«ãŒããããã³ãã¹ãŠã®ããŒãã«å¯ŸããŠãã³ãã¬ãŒãã³ãã³ããäœæãããŸãã æšæºã³ãã³ãã®ãªã¹ãã¯æ¬¡ã®ãšããã§ãã
- Puppetã®åŒ·å¶å±éã
- ããã±ãŒãžãªããžããªããã¡ã¿æ
å ±ãæŽæ°ããŸãã
- ã·ã¹ãã æŽæ°ã
- å€ãæªäœ¿çšããã±ãŒãžã®åé€ã
- æ§æã§æå®ãããä»»æã®ã³ãã³ãã
- ç¹æš©ãåèšãå¶åŸ¡ïŒ Total Control Users ïŒã®ä»£ããã«ãäœç¹æš©å¶åŸ¡ãŠãŒã¶ãŒïŒ Scoped Control Users ïŒãäœæããããšãã§ããŸãã
- ãã®ãããªãŠãŒã¶ãŒã¯ããã®é åã«å±ããŠãããšæç€ºçã«ããŒã¯ãããŠããã·ã¹ãã ïŒ Control Scope ïŒã®ã¿ã«ã¢ã¯ã»ã¹ã§ããŸãã
èšçœ®
ã€ã³ãã©ã¹ãã©ã¯ãã£ã¯ã cfnetwork
ã cfauth
ããã³cfpuppetserver
ã¢ãžã¥ãŒã«äžã«æ§ç¯ãããŸããã cftotalcontrol
ã¯ç«¶åããã«æ··åšç°å¢ã§å®å
šã«åäœããããšãcftotalcontrol
ãããŠããŸãã
ãŸããå¹³åã«ã¹ãªãŒãããã«ã¯ãå°ãªããšã1ã€ã®SSHããŒãä¿æããããšããcfauth
ãŸãããã®ããŒã¯ã cfauth
ã¢ãžã¥ãŒã«ãéããŠãã¹ãŠã®ã·ã¹ãã ã«ç»é²ãããŸããããå®¶åºãã®ããŒãºã«ã¯äœ¿çšãããŸããã ãã¡ãããç·æ¥æã«IPMIãä»ããŠããŒããŠã§ã¢ã«ã¢ã¯ã»ã¹ããã·ãªã¢ã«/ GUIã³ã³ãœãŒã«ãä»ããŠä»®æ³ãã·ã³ã«ã¢ã¯ã»ã¹ããããšãå¿ããªãã§ãã ããã
次ã«ã äŸãèŠãŠãã ããïŒ
cftotalcontrol
ã¢ãžã¥ãŒã«ãcftotalcontrol
远å ããŸã
mod 'codingfuture/cftotalcontrol'
- ãã¹ãŠã®ããŒãã®
classes
ãªã¹ãïŒ common.yaml
ãã¡ã€ã«ïŒ
classes: # , "" - cftotalcontrol::auth
- 管çãŠãŒã¶ãŒãããããŒãïŒä»¥äžãã管çããŒãããšåŒã³ãŸãïŒã®æ§æã®
classes
ãªã¹ããž
classes: # - cftotalcontrol
- Puppetãããã€ã¡ã³ãïŒ
/opt/puppetlabs/bin/puppet agent --test
ïŒã次ã®é åºã§å®è¡ããå¿
èŠããããŸãã
- 管çããŒãã«Puppetããããã€ããŸã-管çãŠãŒã¶ãŒãšãã®ç°å¢ãäœæããŸãã
- ä»ã®ãã¹ãŠã®ããŒãã«Puppetããããã€ããŸã-ããã«ããã管çãŠãŒã¶ãŒèšå®ã®èªåçæã®ããã«PuppetDBã«ã·ã¹ãã ãç»é²ãããŸãã
- 管çãŠãŒã¶ãŒã®äžã«ç§»åããç§å¯ããŒãçæããŸãïŒèªåçã«æäŸãããŸãïŒã çæåŸãPuppetã®ãããã€ã¡ã³ããèªåçã«åŒã³åºãããå
¬éããŒãPuppetDBã«ãšã¯ã¹ããŒããããŸãã
- ãã¹ãŠã®ã·ã¹ãã ã«PuppetãããäžåºŠå±éããŸã-管çãŠãŒã¶ãŒã®å
¬éããŒã¯ã©ãã«ã§ãç»é²ããããŠãŒã¶ãŒã¯ãã¹ãŠã®ããŒãã«ã¢ã¯ã»ã¹ã§ããæ§æãäœæããŸãã
- ãã®äžé£ã®ã¢ã¯ã·ã§ã³ã¯ãåæã€ã³ã¹ããŒã«æã«ã®ã¿å¿
èŠã§ãã ããã«ãæ°ããããŒãçæãããšãã«ããŒã®æŽæ°ãèªååãããŸãã
ãããã®ç°¡åãªæäœã®åŸãç¹å¥ã«cftotalcontrol
ããBashç°å¢ãšã¯ã©ã€ã¢ã³ãSSHæ§æãæã€cftotalcontrol
ãŠãŒã¶ãŒãã cftotalcontrol
ã¯ã©ã¹ãæã€ããŒãäžã«äœæãããŸãã cftotalcontrol::control_user
ãŠããŠãŒã¶ãŒåãéæšæºã«å€æŽããããšã匷ããå§ããcftotalcontrol::control_user
ã
cfauth
ãã¹ãŠã®æšæºç®¡çããŒããã®ãŠãŒã¶ãŒã«ç»é²ãããŸãããã€ããªãã®ãŒçã«æ£ããã¢ã¯ã»ã¹ãæŽçããã«ã¯ã cftotalcontrol::ssh_auth_keys
ã®ã¿ç®¡çããŒãç»é²ããå¿
èŠããããŸãã ãã¡ããããŸããã¹ãŠãæ©èœãããã¹ãŠã®ãµãŒããŒãã¢ã¯ã»ã¹ã§ããããšã確èªããå¿
èŠããããŸãã
SSHãããã·ã¢ã¯ã»ã¹
å€§èŠæš¡ãªã€ã³ãã©ã¹ãã©ã¯ãã£ã§ã¯ãã»ãšãã©ã®å Žåãã·ã¹ãã ã®ããäžéšã®ã¿ãå€ã®äžçãèŠã蟌ã¿ãããããéããŠä»ã®ã·ã¹ãã ãžã®ã¢ã¯ã»ã¹ãæŽçããå¿
èŠããããŸãã
SSHã¯ã©ã€ã¢ã³ãã§ã¯ãããã¯å€ssh -W target:port proxyhost
ããProxyCommand
ãªãã·ã§ã³ã䜿çšããŠç°¡åã«å®è£
ã§ããŸãã ãã®æ¹æ³ã¯ããªã¢ãŒãã·ã¹ãã ã§ç®¡çè
ã®ç§å¯éµãçãããšãã§ããSSHãšãŒãžã§ã³ã転éã䜿çšãããããå®å
šã§ãã ååãšããŠããããã®æè¡ç詳现ã®ç¥èã¯ã cftotalcontrol
ã¢ãžã¥ãŒã«ã䜿çšããããã«å¿
èŠã§ã¯ãããŸããã å¿
èŠãªãã¹ãŠã®æ§æã¯ã cftotalcontrol::pool_proxy
åºã¥ããŠçæããcftotalcontrol::pool_proxy
ã
ãã¡ãããåã¿ãŒã²ããããŒãã®ãããã·ããŒãããªã¹ãããã®ã¯éå¹ççã§ããã ãã§ãªããæ°ããã·ã¹ãã ã远å ãããšãã«é »ç¹ã«ãšã©ãŒãçºçããããšã«ããªããŸãã 代ããã«ãåã®ããŒãã§èª¬æãããã¡ã¯ãcf_location
ããã³cf_location_pool
ããããã²ãŒã·ã§ã³ãã«äœ¿çšãããŸãã éåžžããããã®ãã¡ã¯ãã¯ã cf_gen_puppet_client_init
ã¯ã©ã€ã¢ã³ãåæåã¹ã¯ãªããã®åæã€ã³ã¹ããŒã«äžã«èšå®ãããŸããã cfsystem
ã¢ãžã¥ãŒã«ã®ãã©ã¡ãŒã¿ãŒã䜿çšããŠå€æŽã§ããŸãã
SSHã¯ã©ã€ã¢ã³ãæ§æãçæãããšãããããã·ããŒãã¯æ¬¡ã®é åºã§æ€çŽ¢ãããŸãã
$cftotalcontrol::pool_proxy["$cf_location/$cf_location_pool"]
$cftotalcontrol::pool_proxy["$cf_location"]
$cftotalcontrol::pool_proxy["$certname"]
-ã¯ããäŸå€çãªã±ãŒã¹ã§ã¯ãã¿ãŒã²ããããŒãã®ãã«ããŒã ã«åºã¥ããŠãããã·ããŒãã瀺ãããã®æãç©Žãæ®ã£ãŠããŸããã
ãã¡ããããã®ãã¹ãŠãcfnetwork
çµ±åãããŠãããäžå¿
èŠãªãžã§ã¹ãã£ãŒãããããšãªããå¿
èŠãªãã®ãã¹ãŠããããã¯ãŒã¯ãã£ã«ã¿ãŒæ§æã«è¿œå ããŸãã
ããŒãã°ã«ãŒã
éåžžãåãã¿ã€ãã®ç¹å®ã®ã¿ã¹ã¯ã¯ãç¹å®ã®å±æ§ïŒOSããµãŒãã¹ã®ã»ãããããŒã«ãªã©ïŒãæã€ããŒãã§ã®ã¿å®è¡ããå¿
èŠããããŸãã ããŒãã®åé¢ã«ãã£ãŠåºããããã¯ããªãããã«ããã«ã¯ã cftotalcontrol::host_groups
ããŠãããç°¡åã«å®è¡cftotalcontrol::host_groups
ãããã¯ã飿³é
åã§ãã puppetdbqueryã¢ãžã¥ãŒã«ã®èª¬æãèªãããšãã§ããŸãã
äŸïŒ
cftotalcontrol::host_groups: puppetserver: "Package['puppetserver']" infra: "cf_location_pool = 'infra'" custom: - 'web.example.com' - 'db.example.com'
æšæºã«ãŒãã³ã³ãã³ã
ãã以äžã®èª¬æãªãã§æç¢ºã«ããå¿
èŠããããŸã
cftotalcontrol::standard_commands: helloworld: 'echo "Hello world!"' gethostname: 'hostname
äžå€®ç®¡çç°å¢ã®ç޹ä»
ããã¯ãä»®æ³ç®¡çè
ã®æçš¿ãå§ãŸãå Žæã§ãã æåã®ãšã³ããªã§ãã·ã¹ãã ã¯ç§å¯ããŒãçæããããšã芪åã«æäŸãããã®åŸãSSHãšãŒãžã§ã³ããèµ·åããŠç§å¯ããŒã远å ããåæã«ãã¹ã¯ãŒããèŠæ±ããŸãã
ãããã人çãèã«æããªãããã«ãã·ã¹ãã ã¯cftotalcontrol::ssh_old_key_days = 180
æ¥ãããå€ãç§å¯ããŒãæŽæ°ããããã«cftotalcontrol::ssh_old_key_days = 180
ãŸãã å
¥ããªãå Žåã§ããcronã¯åãããšãè¡ããæã£ãŠæ¯æ¥ã®æçŽãéããŸãã cftc_gen_key
ã³ãã³ãã䜿çšããŠæ°ããããŒãçæã§ããŸãããã®ã³ãã³ãã¯ãä»ã®ã¢ã¯ã·ã§ã³ãå¿
èŠãšããã«ããã¹ãŠã®ç£èŠå¯Ÿè±¡ããŒãã«èªåçã«ã€ã³ã¹ããŒã«ããŸãã äœãåé¡ãçºçããå Žåãå€ãããŒã¯ãæ°ããããŒãçæãããæç¹ã§ãç§åäœã®UNIXã¿ã€ã ã¹ã¿ã³ãã®åœ¢åŒã§ãæ¡åŒµåã~/.ssh/
åžžã«ãã~/.ssh/
ã ããã¯ãæ¥ç¶ãšã©ãŒãPuppetèšå®ããŸãã¯äºçްãªãªãã©ã€ã³å¶åŸ¡ã·ã¹ãã ãåå ã§çºçããå¯èœæ§ããããŸãã
äžè¬ã«ãå
éšã§ã¯æ¬¡ã®ããšãçºçããŸãã
~/.bash_aliases
æ¥ç¶ãããè¡ãå¿
èŠã§ã~/.cftotalcontrol_aliases
~/.cftotalcontrol_aliases
-Bashç°å¢ã®ãã¹ãŠã®éæ³~/.ssh/cftotalcontrol_config
æ£ãããŠãŒã¶ãŒãããŒããããã³ProxyCommand
æã€ç¹å¥ãªSSH ProxyCommand
ã èšããŸã§ããªããããŒã¿ãPuppetDBããååŸãããŸãã~/.ssh/cftchostsall
ãã¹ãŠã®å¶åŸ¡å¯Ÿè±¡ããŒãã®ãªã¹ãã~/.ssh/cftchosts_${grp}
-ç¹å®ã®ã°ã«ãŒãã®å¶åŸ¡ãããããŒãã®ãªã¹ãã~/.ssh/cftc_id_${ssh_key_type}
-çŸåšã®ç§å¯éµã~/.ssh/cftc_id_${ssh_key_type}.${backup_timestamp}
-éåžžã®å Žåãã©ãã«ãç»é²ãããŠããªãå€ãç§å¯éµã
ãŠãŒãã£ãªãã£Bashç°å¢ã³ãã³ãïŒ
cftc_ssh
å¿
èŠãªãã¹ãŠã®ãã©ã¡ãŒã¿ãŒã䜿çšããSSHã®æ£ããèµ·åãcftc_scp
ãã¹ãŠã®å¿
èŠãªãã©ã¡ãŒã¿ãŒã䜿çšããSCPã®æ£ããèµ·åãcftc_gen_key
ç§å¯ããŒã®æååçæïŒããŒããªãå Žåã«å
¥åãããšèªåçã«åŒã³åºãããŸãïŒãcftc_add_key
-SSHãšãŒãžã§ã³ããèµ·åããç§å¯éµã远å ããŸãïŒå
¥åæã«èªåçã«åŒã³åºãããŸãïŒãcftc_check_old_key
å€ãããŒã®æåæ€èšŒïŒå
¥åæã«èªåçã«åŒã³åºãããcronã«ãã£ãŠæ¯æ¥åŒã³åºãããŸãïŒã
ããŒãã®çŽæ¥äœæ¥ïŒ
ssh_${hostname} [$cmd]
-ç¹å®ã®ãã¹ãã«ç§»åãããã察話ã¢ãŒãã§ä»»æã®ã³ãã³ããå®è¡ããŸãã æ³šïŒ ${hostname}
ã§ããªãªãã¯ã¢ã³ããŒã¹ã³ã¢ã«çœ®ãæããããŸãssh_${hostname}_{stdcmd} [args]
-ç¹å®ã®ããŒãã§æšæºã³ãã³ãã®1ã€ãå®è¡ããŸããssh_masscmd {cmd}
-ãã¹ãŠã®ããŒãã§å¯Ÿè©±ã¢ãŒãã§{cmd}
é çªã«å®è¡ããŸããssh_mass_{stdcmd} [args]
-ãã¹ãŠã®ããŒãã§æšæºã¢ãŒãã®ããããã察話ã¢ãŒãã§é çªã«å®è¡ããŸããpssh_masscmd {cmd}
-ãã¹ãŠã®ããŒãã§äžŠè¡ããŠ{cmd}
ãå®è¡ããŸããpssh_mass_{stdcmd} [args]
-ãã¹ãŠã®ããŒãã§æšæºã³ãã³ãã®1ã€ã䞊è¡ããŠå®è¡ããŸããsshgrp_{group}_*
ããã³psshgrp_{group}_*
ã¯ã以åã®ããã«ã¯ãã®ãã®ãšåãã§ãããããŒãã®éå®ãããååä»ãã°ã«ãŒãçšã§ãã
éèŠãªç°å¢å€æ°ïŒ
PSSH_COUNT=$cftotalcontrol::parallel
䞊ååŒã³åºãã®æå€§æ°ã 倧ããªè² è·ããããã·ããŒãã«éãããMaxStartupsãªãã·ã§ã³ã«ãã£ãŠæ¥ç¶ããããã³ã°ãããå¯èœæ§ãããããšãèŠããŠãã䟡å€ããããŸãã æ®å¿µãªãããControlMasterã䜿çšããã¢ãããŒãã¯ã倿°ã®æ¥ç¶ã§ææãäžããŸããã å€éåã¯ããªãå¹³å¡ã«æ©èœããŸã-é£ç¶é話ã®é«éåã«é©ããŠããŸããPSSH_OPTS=-i
- parallel-ssh
远å ãã©ã¡ãŒã¿ãŒïŒpsshïŒSSH_OPTS=
远å ãã©ã¡ãŒã¿ãŒSCP_OPTS=
远å ãã©ã¡ãŒã¿ãŒ
æšæºã³ãã³ãã¯ããã¹ã¯ãŒããªãã§sudo
çµç±ã§åŒã³åºãããã«cfauth
ã«è¿œå ãããã³ãã³ããšåãã§ãã
aptupdate
- sudo /usr/bin/apt-get update
aptdistupgrade
- sudo DEBIAN_FRONTEND=noninteractive /usr/bin/apt-get dist-upgrade -o Dpkg::Options::="--force-confold" -qf
aptautoremove
- sudo DEBIAN_FRONTEND=noninteractive /usr/bin/apt-get autoremove
puppetdeploy
- sudo /opt/puppetlabs/puppet/bin/puppet agent --test
- 䜿çšäŸïŒ
pssh_mass_aptupdate
ã psshgrp_grpname_aptdistupgrade -sy
ã ssh_host_example_com_puppetdeploy
å¶éä»ã管çè
ãäœæãã
é
ããæ©ãããç¹å®ã®ç®¡çè
æš©éã人ã
ã«äžããå¿
èŠããããŸãã ãã®è²¬ä»»ç¯å²ã¯ã€ã³ãã©ã¹ãã©ã¯ãã£å
šäœã®ç®¡çã§ã¯ãããŸããã ããã«ã¯ãDevOpsãDBAããªãªãŒã¹ãããŒãžã£ãŒãªã©ãå«ãŸããŸãã äžéšã®ã¯ã©ã¹ã¿ãªã³ã°ããŒã«ã¯ã仲éã®ããŒããžã®SSHã¢ã¯ã»ã¹ã«ãäŸåããŠããŸããããã¯ããã¹ã¯ãŒããªãã§ç§å¯ããŒãèªåçæãããªã©ãåãã¢ãžã¥ãŒã«ã§ç°¡åã«æ§æã§ããŸãã
ã€ãŸããç¹æš©ã®ãªã管çè
ãäœæããæšæºçãªæ¹æ³ã¯ã cftotalcontrol::extra_users
ããã®cftotalcontrol::extra_users
ã cftotalcontrol::admin
ãããªãªãœãŒã¹ãæ£ããäœæããŸãã ãããŒã¿ã«ãã³ã³ãããŒã«ã®ãŠãŒã¶ãŒãšã®ç¹å¥ãªéãïŒ
- ãŠãŒã¶ãŒåã¯ã察å¿ãã管çé åã®ååã§ãã
- ã_proxyããšããæ¥å°ŸèŸãæã€åãååã®ãŠãŒã¶ãŒããã¹ãŠã®äžéããŒãäžã«äœæãããæ¥ç¶ãšPuppetã®åŒ·å¶å±éïŒããŒã®æŽæ°æã«äœ¿çšïŒã®ã¿ã«ã¢ã¯ã»ã¹ã§ããŸãã
æ®ã£ãŠããã®ã¯ãã¿ãŒã²ããããŒããæå®ããæ¹æ³ã®åé¡ã§ãã ããã¯ã cftotalcontrol::auth::control_scope
ã è€æ°ã®çäœãåãããŒãã«äžåºŠã«æããããšãã§ããŸãã äŸïŒ
cftotalcontrol::auth::control_scope: - web - devops
cftotalcontrol
ã¢ãžã¥ãŒã«ã®cftotalcontrol
ã¯ã©ã¹cftotalcontrol
pool_proxy = {}
ã ãã¢ããŒ=> "name.proxy.node"ã ããŒåœ¢åŒïŒ
- ã$ {cf_location} / $ {cf_location_pool}ã
- ã$ {cf_location}ã
- ã$ {certname}ã
control_user = 'cftcuser'
ã¯ãå¶åŸ¡ãŠãŒã¶ãŒã®ååã§ããcontrol_home = undef
ããŒã ãã©ã«ããŒã ããã©ã«ãïŒ /home/$control_user
ãhost_groups = {}
-ã¿ã€ã(p)sshgrp_*
ã³ãã³ãã®host_groups = {}
ã°ã«ãŒãã®å®çŸ©ã ããŒã¯ã°ã«ãŒãã®ååã§ãã å€ïŒ
- é
å-ã°ã«ãŒãå
ã®ããŒãã«ããéçãªã¹ã
- æåå-åçãªã¹ãã®Puppet DBã¯ãšãª
parallel = 10
åæSSHåŒã³åºãã®æ°ãstandard_commands = {}
-ãªã¹ãã«è¿œå ããæšæºã®ã«ãŒãã³ã³ãã³ããssh_key_type = 'rsa'
ç§å¯éµã®ã¿ã€ãã æ°ããã¿ã€ãã®ãed25519ãã«ã泚æãæã䟡å€ããããŸããssh_key_bits = 4096
ç§å¯ããŒã®é·ããed25519ã§ã¯ç¡èŠãããŸããautogen_ssh_key = false
ãã¹ã¯ãŒããªãã§ç§å¯éµãèªåçã«çæããŸãïŒãå®å
šãªãå¶åŸ¡ã«ã¯äŸ¡å€ããããŸããïŒãssh_old_key_days = 180
ã¢ã«ãŠã³ãã®å
¥åæã«ã·ã¹ãã ãcronã§æ³£ãåºããŸã§ã®ç§å¯éµã®å¹Žéœ¢ãssh_auth_keys = undef
- cfauth
æå®ããããã®ä»¥å€ã®ãŠãŒã¶ãŒãžã®è¿œå ã¢ã¯ã»ã¹ããŒextra_users = undef
ã€ã³ãã©ã¹ãã©ã¯ãã£ãžã®ã¢ã¯ã»ã¹ãå¶éãããŠãã远å ãŠãŒã¶ãŒ => cftotalcontrol::admin
ã¯ã©ã¹cftotalcontrol::auth
control_scope = []
-ãã®ã·ã¹ãã ã«é©çšãããå¶éä»ãã¢ã¯ã»ã¹ãŸãŒã³ã®ååãæã€æååãŸãã¯æååã®é
å
ã¿ã€ãcftotalcontrol::admin
éåžžã cftotalcontrol::extra_users
ä»ããŠåæåãããŸãã extra_users
èªäœãé€ãããã¹ãŠã®ãã©ã¡ãŒã¿ãŒã¯cftotalcontrol
ãšåãã§ãã
control_scope = undef
該åœããå Žåãå¶éåºåã®ååã extra_users
ãä»ããŠäœæãããå ŽåããŠãŒã¶ãŒåextra_users
äžèŽããŸãã æå®ããªãå Žåãç¡å¶éã®ã¢ã¯ã»ã¹æš©ãæã€ãŠãŒã¶ãŒãäœæãããŸãã