Cp-ansible: Zookeeper chroot ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก Kafka ๋ธŒ๋กœ์ปค ๊ตฌ์„ฑ

์— ๋งŒ๋“  2021๋…„ 06์›” 14์ผ  ยท  5์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: confluentinc/cp-ansible

Zookeeper chroot ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก Kafka ๋ธŒ๋กœ์ปค๋ฅผ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ Kafka๋Š” Zookeeper์˜ ๋ฃจํŠธ์— znode๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
์•ฑ ๊ตฌ์„ฑ๊ณผ Kafka ๊ตฌ์„ฑ์„ ๋ถ„๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Kafka์— ๋Œ€ํ•ด ์„œ๋กœ ๋‹ค๋ฅธ chroot ๊ฒฝ๋กœ๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

cp-ansible์— ์˜ํ•ด ํ”„๋กœ๋น„์ €๋‹๋œ chroot Zookeeper ๊ฒฝ๋กœ๊ฐ€ ์žˆ๋Š” Kafka๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์˜ˆ๋กœ์„œ. hostname1:port1,hostname2:port2,hostname3:port3/chroot/path ์™€ ๊ฐ™์€ ๊ฐ’์„ ๊ฐ–๋„๋ก _zookeeper.connect_๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด cp-ansible์ด ํ•„์š”

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@a-narenji ์ถ”๊ฐ€ ์ •๋ณด ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์•ˆํƒ€๊น๊ฒŒ๋„ ํ˜„์žฌ๋กœ์„œ๋Š” ์ด ๊ตฌ์„ฑ์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ์Šคํฌ๋žจ ์‚ฌ์šฉ์ž ์ฃผ๋ณ€. ์ถ”๊ฐ€๋กœ ์ฃผ๋ชฉํ•ด์•ผ ํ•  ์ ์€ Zookeeper๊ฐ€ ๊ณง kafka ์ข…์†์„ฑ์œผ๋กœ ์ œ๊ฑฐ๋  ์˜ˆ์ •์ด๋ฏ€๋กœ ์ด๋ฅผ ๊ฒ€ํ† ํ•˜๊ณ  ํ–ฅํ›„ ๋ฆด๋ฆฌ์Šค์—์„œ Zookeeper๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด ์ˆ˜์ •์„ ํ—ˆ์šฉํ•˜๋Š” ๊ฒƒ์ด ํƒ€๋‹นํ•œ์ง€ ํ™•์ธํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  5 ๋Œ“๊ธ€

@a-narenji ๊ธฐ์กด ์‚ฌ์œก์‚ฌ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๋ ‡๋‹ค๋ฉด ์ผ๋ฐ˜์ ์œผ๋กœ ๊ถŒ์žฅํ•˜์ง€ ์•Š์œผ๋ฉฐ cp-ansible์ด ์‚ฌ์œก์‚ฌ๋ฅผ ์„ค์น˜ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ ์‹คํ–‰ ์ค‘์ธ ๋ฒ„์ „์ด ํ˜ธํ™˜๋˜๋Š”์ง€ ๋“ฑ์„ ๋ณด์žฅํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ ๋ฌธ์„œ์— ๋”ฐ๋ผ ์‚ฌ์šฉ์ž ์ง€์ • ์†์„ฑ์„ ํ†ตํ•ด ๋ชจ๋“  ๊ตฌ์„ฑ์„ ์žฌ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

https://docs.confluent.io/ansible/current/ansible-configure.html#set -custom-component-properties

๋”ฐ๋ผ์„œ ๋ธŒ๋กœ์ปค์—์„œ ์†์„ฑ์„ ์›ํ•˜๋Š” ๊ตฌ์„ฑ์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์œก์‚ฌ๋ฅผ ๊ด€๋ฆฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์ˆ˜๋™์œผ๋กœ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@JumaX ๋‹ต๋ณ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
์šฐ๋ฆฌ๋Š” ๊ธฐ์กด Zookeeper ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  cp-ansible์—์„œ ์„ค์ •ํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•œ Zookeeper๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์šฐ๋ฆฌ ๊ฐœ๋ฐœ ํŒ€์€ ๋‹ค๋ฅธ ๋ชฉ์ ์œผ๋กœ Zookeeper๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํŒ€ ์š”๊ตฌ ์‚ฌํ•ญ ๊ฐœ๋ฐœ์„ ์ „๋‹ดํ•˜๋Š” ๋‘ ๋ฒˆ์งธ Zookeeper ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ฐ–๋Š” ๊ฒƒ์€ ํ•ฉ๋ฆฌ์ ์ด์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ cp-ansible์ด _zookeeper.connect_ ์†์„ฑ์— chroot ๊ฒฝ๋กœ๋ฅผ ๊ฐ–๋„๋ก ํ•˜๋ฉด ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
๋˜ํ•œ SASL์„ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•˜๋ฏ€๋กœ _zookeeper.connect_๋งŒ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์œผ๋ฉฐ cp-ansible์ด SCRAM์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก Create SCRAM Users ๋ฐ Create SCRAM 256 Users ์ž‘์—…์„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” Zookeeper chroot ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

@a-narenji ์ถ”๊ฐ€ ์ •๋ณด ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์•ˆํƒ€๊น๊ฒŒ๋„ ํ˜„์žฌ๋กœ์„œ๋Š” ์ด ๊ตฌ์„ฑ์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ์Šคํฌ๋žจ ์‚ฌ์šฉ์ž ์ฃผ๋ณ€. ์ถ”๊ฐ€๋กœ ์ฃผ๋ชฉํ•ด์•ผ ํ•  ์ ์€ Zookeeper๊ฐ€ ๊ณง kafka ์ข…์†์„ฑ์œผ๋กœ ์ œ๊ฑฐ๋  ์˜ˆ์ •์ด๋ฏ€๋กœ ์ด๋ฅผ ๊ฒ€ํ† ํ•˜๊ณ  ํ–ฅํ›„ ๋ฆด๋ฆฌ์Šค์—์„œ Zookeeper๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด ์ˆ˜์ •์„ ํ—ˆ์šฉํ•˜๋Š” ๊ฒƒ์ด ํƒ€๋‹นํ•œ์ง€ ํ™•์ธํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@a-narenji ๊ฒ€ํ† ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ: https://github.com/confluentinc/cp-ansible/pull/694

@domenicbove ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์—์„œ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๊ฒƒ์€ ์ž˜ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.
์ด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰