์•ค์„œ๋ธ” ์†๋„ ํ–ฅ์ƒ

์•ค์„œ๋ธ” ์†๋„ ํ–ฅ์ƒ
๊ธฐ๋ณธ ์„ค์ •์œผ๋กœ๋Š” Ansible์ด ์ž‘์—…์„ ๋งค์šฐ ๋น ๋ฅด๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์€ ๋น„๋ฐ€์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ด ๊ธฐ์‚ฌ์—์„œ๋Š” ์ด์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ์ด์œ ๋ฅผ ์ง€์ ํ•˜๊ณ  ์‹ค์ œ๋กœ ํ”„๋กœ์ ํŠธ ์†๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ๋Š” ์œ ์šฉํ•œ ์ตœ์†Œ ์„ค์ •์„ ์ œ๊ณตํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์™€ ์•„๋ž˜์—์„œ๋Š” ์ƒˆ๋กœ ์ƒ์„ฑ๋œ virtualenv์— ์›ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์„ค์น˜๋œ Ansible 2.9.x์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์„ค์น˜ ํ›„ ํ”Œ๋ ˆ์ด๋ถ ์˜†์— "ansible.cfg" ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ์œ„์น˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ”„๋กœ์ ํŠธ์™€ ํ•จ๊ป˜ ์ด๋Ÿฌํ•œ ์„ค์ •์„ ์ „์†กํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ž๋™์œผ๋กœ ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค.

ํŒŒ์ดํ”„๋ผ์ด๋‹

์ผ๋ถ€๋Š” ํŒŒ์ดํ”„๋ผ์ด๋‹์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ , ์ฆ‰ ๋Œ€์ƒ ์‹œ์Šคํ…œ์˜ ํŒŒ์ผ ์‹œ์Šคํ…œ์— ๋ชจ๋“ˆ์„ ๋ณต์‚ฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ Base64๋กœ ๋ž˜ํ•‘๋œ zip ์•„์นด์ด๋ธŒ๋ฅผ Python ์ธํ„ฐํ”„๋ฆฌํ„ฐ์˜ stdin์œผ๋กœ ์ง์ ‘ ์ „์†กํ•ด์•ผ ํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์ด๋ฏธ ๋“ค์—ˆ์„ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ๋„ ์žˆ์ง€๋งŒ ์‚ฌ์‹ค์€ ์‚ฌ์‹ค๋กœ ๋‚จ์•„์žˆ์Šต๋‹ˆ๋‹ค: ์ด ์„ค์ • ์•„์ง๋„ ๊ณผ์†Œํ‰๊ฐ€๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถˆํ–‰ํ•˜๊ฒŒ๋„, sudo๋ฅผ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์ผ๋ถ€ ์ธ๊ธฐ ์žˆ๋Š” Linux ๋ฐฐํฌํŒ์—์„œ๋Š” ์ด ๋ช…๋ น์— tty(ํ„ฐ๋ฏธ๋„)๊ฐ€ ํ•„์š”ํ•˜๋ฏ€๋กœ Ansible์€ ์ด ๋งค์šฐ ์œ ์šฉํ•œ ์„ค์ •์„ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.

pipelining = True

์‚ฌ์‹ค ์ˆ˜์ง‘

๊ธฐ๋ณธ ์„ค์ •์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ ํ”Œ๋ ˆ์ด์— ๋Œ€ํ•œ Ansible์ด ํ•ด๋‹น ํ”Œ๋ ˆ์ด์— ์ฐธ์—ฌํ•˜๋Š” ๋ชจ๋“  ํ˜ธ์ŠคํŠธ์— ๋Œ€ํ•œ ์ •๋ณด ์ˆ˜์ง‘์„ ์‹œ์ž‘ํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ณ  ๊ณ„์…จ์Šต๋‹ˆ๊นŒ? ์ผ๋ฐ˜์ ์œผ๋กœ ๋ชฐ๋ž๋‹ค๋ฉด ์ด์ œ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ผ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ํ•˜๋ ค๋ฉด ์‚ฌ์‹ค ์ˆ˜์ง‘์„ ์œ„ํ•œ ๋ช…์‹œ์  ์š”์ฒญ ๋ชจ๋“œ(๋ช…์‹œ์ ) ๋˜๋Š” ์Šค๋งˆํŠธ ๋ชจ๋“œ๋ฅผ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์•ˆ์—๋Š” ์ด์ „ ์—ฐ๊ทน์—์„œ ๋งŒ๋‚˜์ง€ ๋ชปํ•œ ํ˜ธ์ŠคํŠธ๋กœ๋ถ€ํ„ฐ๋งŒ ์‚ฌ์‹ค์ด ์ˆ˜์ง‘๋ฉ๋‹ˆ๋‹ค.
UPD. ๋ณต์‚ฌํ•  ๋•Œ ๋‹ค์Œ ์„ค์ • ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

gathering = smart|explicit

SSH ์—ฐ๊ฒฐ ์žฌ์‚ฌ์šฉ

๋””๋ฒ„๊น… ๋ชจ๋“œ("v" ์˜ต์…˜, XNUMX~XNUMXํšŒ ๋ฐ˜๋ณต)์—์„œ Ansible์„ ์‹คํ–‰ํ•œ ์ ์ด ์žˆ๋‹ค๋ฉด SSH ์—ฐ๊ฒฐ์ด ์ง€์†์ ์œผ๋กœ ์ƒ์„ฑ๋˜๊ณ  ๋Š์–ด์ง€๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์—ฌ๊ธฐ์—๋„ ๋ช‡ ๊ฐ€์ง€ ๋ฏธ๋ฌ˜ํ•จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

SSH ํด๋ผ์ด์–ธํŠธ์—์„œ ์ง์ ‘, ๊ทธ๋ฆฌ๊ณ  ๊ด€๋ฆฌ์ž์—์„œ ๊ด€๋ฆฌ ํ˜ธ์ŠคํŠธ๋กœ ํŒŒ์ผ์„ ์ „์†กํ•  ๋•Œ ๋‘ ์ˆ˜์ค€์—์„œ ๋™์‹œ์— SSH ์—ฐ๊ฒฐ์„ ๋‹ค์‹œ ์„ค์ •ํ•˜๋Š” ๋‹จ๊ณ„๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์—ด๋ฆฐ SSH ์—ฐ๊ฒฐ์„ ์žฌ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํ•„์š”ํ•œ ํ‚ค๋ฅผ SSH ํด๋ผ์ด์–ธํŠธ์— ์ „๋‹ฌํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค์Œ ์ž‘์—…์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ฒ˜์Œ์œผ๋กœ SSH ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•  ๋•Œ ์†Œ์œ„ ์ œ์–ด ์†Œ์ผ“์„ ์ถ”๊ฐ€๋กœ ์ƒ์„ฑํ•˜๊ณ , ํ›„์† ์„ค์น˜ ์‹œ ๋ฐ”๋กœ ์ด ์†Œ์ผ“์˜ ์กด์žฌ๋ฅผ ํ™•์ธํ•˜๊ณ , ์„ฑ๊ณตํ•˜๋ฉด ๊ธฐ์กด SSH ์—ฐ๊ฒฐ. ์ด ๋ชจ๋“  ๊ฒƒ์ด ์ดํ•ด๋˜๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด ๋น„ํ™œ์„ฑ ์ƒํƒœ์—์„œ ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•˜๋Š” ์‹œ๊ฐ„์„ ์„ค์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹ค์Œ์—์„œ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. SSH ๋ฌธ์„œ, Ansible์˜ ๋งฅ๋ฝ์—์„œ ์šฐ๋ฆฌ๋Š” ํ•„์š”ํ•œ ์˜ต์…˜์„ ssh ํด๋ผ์ด์–ธํŠธ์— "์ „๋‹ฌ"ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

ssh_args = "-o ControlMaster=auto -o ControlPersist=15m"

ํŒŒ์ผ์„ ๊ด€๋ฆฌ ํ˜ธ์ŠคํŠธ๋กœ ์ „์†กํ•  ๋•Œ ์ด๋ฏธ ์—ด๋ ค ์žˆ๋Š” SSH ์—ฐ๊ฒฐ์„ ์žฌ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์•Œ ์ˆ˜ ์—†๋Š” ๋‹ค๋ฅธ ์„ค์ • ssh_tranfer_method๋ฅผ ์ง€์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด ์ฃผ์ œ์— ๋Œ€ํ•œ ๋ฌธ์„œ๋Š” ๋งค์šฐ ์ ์€ ์ด ์˜ต์…˜์€ ๊ฝค ์ž˜ ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜คํ•ด์˜ ์†Œ์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค! ํ•˜์ง€๋งŒ ๋…์„œ ์†Œ์Šค ์ฝ”๋“œ ์ •ํ™•ํžˆ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚ ์ง€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. dd ๋ช…๋ น์ด ๊ด€๋ฆฌ ํ˜ธ์ŠคํŠธ์—์„œ ์‹คํ–‰๋˜์–ด ์›ํ•˜๋Š” ํŒŒ์ผ๋กœ ์ง์ ‘ ์ž‘์—…ํ•ฉ๋‹ˆ๋‹ค.

transfer_method = piped

๊ทธ๊ฑด ๊ทธ๋ ‡๊ณ , "๊ฐœ๋ฐœ" ๋ถ„๊ธฐ์—๋„ ์ด ์„ค์ •์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์•„๋ฌด๋ฐ๋„ ์•ˆ ๊ฐ€.

์นผ์„ ๋‘๋ ค์›Œํ•˜์ง€ ๋ง๊ณ  ํฌํฌ๋ฅผ ๋‘๋ ค์›Œํ•˜๋ผ

๋˜ ๋‹ค๋ฅธ ์œ ์šฉํ•œ ์„ค์ •์€ ํฌํฌ์ž…๋‹ˆ๋‹ค. ํ˜ธ์ŠคํŠธ์— ๋™์‹œ์— ์—ฐ๊ฒฐํ•˜๊ณ  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ž‘์—…์ž ํ”„๋กœ์„ธ์Šค์˜ ์ˆ˜๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์–ธ์–ด๋กœ์„œ์˜ Python์˜ ํŠน์„ฑ์œผ๋กœ ์ธํ•ด ์Šค๋ ˆ๋“œ๊ฐ€ ์•„๋‹Œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. Ansible์€ ์—ฌ์ „ํžˆ โ€‹โ€‹Python 2.7์„ ์ง€์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์— asyncio๊ฐ€ ์—†์œผ๋ฏ€๋กœ ์—ฌ๊ธฐ์— ๋น„๋™๊ธฐ ๋™์ž‘์„ ๋„์ž…ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค! ๊ธฐ๋ณธ์ ์œผ๋กœ Ansible์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๋‹ค์„ฏ ์ž‘์—…์ž์ด์ง€๋งŒ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์š”์ฒญํ•˜๋ฉด ๋” ๋งŽ์€ ์ž‘์—…์ด ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

forks = 20

์ œ์–ด ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ ์–‘๊ณผ ๊ด€๋ จํ•˜์—ฌ ์—ฌ๊ธฐ์— ๋ช‡ ๊ฐ€์ง€ ์–ด๋ ค์›€์ด ์žˆ์„ ์ˆ˜ ์žˆ์Œ์„ ์ฆ‰์‹œ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋ฌผ๋ก  forks=100500์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ˆ„๊ฐ€ ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๊นŒ?

ํ•จ๊ป˜ ๋ชจ์•„์„œ

๊ฒฐ๊ณผ์ ์œผ๋กœ ansible.cfg(ini ํ˜•์‹)์˜ ๊ฒฝ์šฐ ํ•„์š”ํ•œ ์„ค์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

[defaults]
gathering = smart|explicit
forks = 20
[ssh_connection]
pipelining = True
ssh_args = -o ControlMaster=auto -o ControlPersist=15m
transfer_method = piped

๊ฑด๊ฐ•ํ•œ ์‚ฌ๋žŒ์˜ ์ผ๋ฐ˜ YaML ์ธ๋ฒคํ† ๋ฆฌ์—์„œ ๋ชจ๋“  ๊ฒƒ์„ ์ˆจ๊ธฐ๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณด์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

---
all:
  vars:
    ansible_ssh_pipelining: true
    ansible_ssh_transfer_method: piped
    ansible_ssh_args: -o ControlMaster=auto -o ControlPersist=15m

๋ถˆํ–‰ํ•˜๊ฒŒ๋„ ์ด๋Š” "gathering = smart/explicit" ๋ฐ "forks = 20" ์„ค์ •์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. YaML์— ํ•ด๋‹นํ•˜๋Š” ํ•ญ๋ชฉ์€ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ansible.cfg์— ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ANSIBLE_GATHERING ๋ฐ ANSIBLE_FORKS๋ฅผ ํ†ตํ•ด ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

๋ฏธํ† ๊ฒ ์†Œ๊ฐœ
- ๋ฏธํ† ๊ฒ์€ ์–ด๋””์— ์žˆ๋‚˜์š”? - ๋…์ž ์—ฌ๋Ÿฌ๋ถ„, ๋ฌผ์–ด๋ณผ ๊ถŒ๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ์‚ฌ ์–ด๋””์—๋„ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ฝ”๋“œ๋ฅผ ์ฝ๊ณ  ํ”Œ๋ ˆ์ด๋ถ์ด Mitogen๊ณผ ์ถฉ๋Œํ•˜์ง€๋งŒ ๋ฐ”๋‹๋ผ Ansible์—์„œ๋Š” ์ž˜ ์ž‘๋™ํ•˜๋Š” ์ด์œ ๋ฅผ ์•Œ์•„๋‚ผ ์ค€๋น„๊ฐ€ ๋˜์—ˆ๊ฑฐ๋‚˜, ๋™์ผํ•œ ํ”Œ๋ ˆ์ด๋ถ์ด ์ด์ „์—๋Š” ์ž˜ ์ž‘๋™ํ–ˆ์ง€๋งŒ ์—…๋ฐ์ดํŠธ ํ›„์— ์ด์ƒํ•œ ์ผ์ด ์‹œ์ž‘๋œ ์ด์œ ๋ฅผ ์•Œ์•„๋‚ผ ์ค€๋น„๊ฐ€ ๋˜์—ˆ๋‹ค๋ฉด - ์Œ, Mitogen ์ž ์žฌ์ ์œผ๋กœ ๋‹น์‹ ์˜ ๋„๊ตฌ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ ์šฉํ•˜๊ณ , ์ดํ•ดํ•˜๊ณ , ๊ธฐ์‚ฌ๋ฅผ ์“ฐ์„ธ์š”. ํฅ๋ฏธ๋กญ๊ฒŒ ์ฝ์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ฐœ์ธ์ ์œผ๋กœ Mitogen์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๊ธ€๋ผ๋””์˜ฌ๋Ÿฌ์Šค๋Š” ์ž‘์—…์ด ์ •๋ง ๊ฐ„๋‹จํ•˜๊ณ  ๋ชจ๋“  ๊ฒƒ์ด ๊ดœ์ฐฎ์€ ๊ฒฝ์šฐ์—๋งŒ ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์™ผ์ชฝ์ด๋‚˜ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์กฐ๊ธˆ ๋Œ๋ฆฌ๋ฉด ๊ทธ๊ฒŒ ์ „๋ถ€์ž…๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ ๋ช‡ ๊ฐ€์ง€ ๋ˆˆ์— ๋„์ง€ ์•Š๋Š” ์˜ˆ์™ธ๊ฐ€ ๋‚ ์•„๊ฐ€๊ณ  ๊ทธ๋ฆผ์„ ์™„์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๋น ์ง„ ๊ฒƒ์€ "๋ชจ๋‘ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค"๋ผ๋Š” ์ผ๋ฐ˜์ ์ธ ๋ฌธ๊ตฌ๋ฟ์ž…๋‹ˆ๋‹ค. , ๋ชจ๋‘๊ฐ€ ๋ฌด๋ฃŒ์ž…๋‹ˆ๋‹ค.โ€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ €๋Š” ๋‹ค์Œ "์ง€ํ•˜ ๋…ธํฌ"์˜ ์›์ธ์„ ์ฐพ๋Š” ๋ฐ ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์„ค์ • ์ค‘ ์ผ๋ถ€๋Š” ์ฝ๊ธฐ ๊ณผ์ •์—์„œ ๋ฐœ๊ฒฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์†Œ์Šค ์ฝ”๋“œ ์ด๋ฆ„์ด "ssh.py"์ธ ์—ฐ๊ฒฐ ํ”Œ๋Ÿฌ๊ทธ์ธ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์†Œ์Šค๋ฅผ ๋ณด๊ณ , ์ฝ๊ณ , ๊ตฌํ˜„์„ ํ™•์ธํ•˜๊ณ , ๋ฌธ์„œ์™€ ๋น„๊ตํ•˜๋„๋ก ์˜๊ฐ์„ ์ฃผ๊ธฐ๋ฅผ ๋ฐ”๋ผ๋ฉฐ ์ฝ์€ ๊ฒฐ๊ณผ๋ฅผ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ ์ด ๋ชจ๋“  ๊ฒƒ์ด ์กฐ๋งŒ๊ฐ„ ๊ธ์ •์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜ฌ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ–‰์šด์„ ๋นŒ์–ด์š”!

๋“ฑ๋ก๋œ ์‚ฌ์šฉ์ž๋งŒ ์„ค๋ฌธ ์กฐ์‚ฌ์— ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ์ธ์ œ๋ฐœ

๋‹ค์Œ ์ค‘ ํ”„๋กœ์ ํŠธ ์†๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด ์–ด๋–ค Ansible ์„ค์ •์„ ์‚ฌ์šฉํ•˜์‹ญ๋‹ˆ๊นŒ?

  • 69,6%ํŒŒ์ดํ”„๋ผ์ด๋‹=true32

  • 34,8%์ˆ˜์ง‘ = ์Šค๋งˆํŠธ/๋ช…์‹œ16

  • 52,2%ssh_args = "-o ControlMaster=์ž๋™ -o ControlPersist=..."24

  • 17,4%transfer_method = ํŒŒ์ดํ”„8

  • 63,0%ํฌํฌ = XXX29

  • 6,5%์ด ์ค‘ ์•„๋ฌด๊ฒƒ๋„ ์—†์Œ, ๋‹จ์ง€ Mitogen3

  • 8,7%Mitogen + ์ด ์„ค์ • ์ค‘ ์–ด๋Š ๊ฒƒ์„ ๊ธฐ๋กํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค4

46๋ช…์˜ ์‚ฌ์šฉ์ž๊ฐ€ ํˆฌํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. 21๋ช…์˜ ์‚ฌ์šฉ์ž๊ฐ€ ๊ธฐ๊ถŒํ–ˆ์Šต๋‹ˆ๋‹ค.

Ansible์— ๋Œ€ํ•ด ๋” ๋งŽ์€ ์ •๋ณด๋ฅผ ์›ํ•˜์‹œ๋‚˜์š”?

  • 78,3%์‘, ๋ฌผ๋ก ์ด์ง€54

  • 21,7%์‘, ๋‚œ ๊ทธ๋ƒฅ ์ข€ ๋” ํ•˜๋“œ์ฝ”์–ดํ•œ ๊ฑธ ์›ํ•  ๋ฟ์ด์•ผ!15

  • 0,0%์•„๋‹ˆ์š”, ๊ทธ๋ฆฌ๊ณ  ์•„๋ฌด๊ฒƒ๋„ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค0

  • 0,0%์•„๋‹ˆ ๋ณต์žกํ•ด!!!0

69๋ช…์˜ ์‚ฌ์šฉ์ž๊ฐ€ ํˆฌํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. 7๋ช…์˜ ์‚ฌ์šฉ์ž๊ฐ€ ๊ธฐ๊ถŒํ–ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€