๋จผ์ ์ด ๋๋ผ์ด ์ผ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
๋๋ ์ด ๋ ์ํผ๋ฅผ ์ฌ์ฉํ๊ณ ์๊ณ , ansible์ ์ ๋ฌธ๊ฐ๊ฐ ์๋๋ฏ๋ก ๋ชจ๋ ์ ์ฅ์ ์ฝํ ์ธ ๋ฅผ ๋ณต์ ํ๊ณ ์ญํ ์ ์ฌ์ฉํ์ง๋ง ๊ฐ์ฅ ์ข์ ์ฌ์ฉ ๋ฐฉ๋ฒ์ธ์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
์กฐ๊ธ ํผ๋ ์ค๋ฝ์ต๋๋ค. ๋ณต์ฌํ๋ ๊ฒ๋ณด๋ค ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ ์์ต๋๊น?
์ด ํ๋ก์ ํธ๋ฅผ ์ํ๊ณ์ ํธํ๋๋๋ก ๋ง๋ค๋ ค๋ ์๋๊ฐ ์์ต๋๊น?
๊ฐ์ฌํฉ๋๋ค
์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น? ์ด ํ๋ ์ด๋ถ์ ์ฌ์ฉํ๋ ๊ฒ์ด ํจ์ฌ ์ฌ์ธ ๊ฒ์ ๋๋ค.
ํ์ฌ๋ก์๋ ๊ฐ๋ฅํ ์ํ๊ณ์ ํผ๋ธ๋ฆฌ์ฑํ ๊ณํ์ด ์์ต๋๋ค. ํฅํ ๋ฆด๋ฆฌ์ค์์ ์ด๋ฅผ ์กฐ์ฌํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด๊ธฐ ์ํด ๋ด๋ถ jira๋ฅผ ์ ์ถํ ๊ฒ์ ๋๋ค.
์ผ๋ฐ์ ์ธ ๊ธฐ๋๋ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ณต์ ํ ๋ค์ ์ง์ ๋ ์ค์ ์ ํ์ํ ํ๋ ์ด๋ถ์ ์คํํ๋ ๊ฒ์ ๋๋ค.
Ansible 2.9๋ Collections๋ผ๋ ์๋ก์ด ๋ฐฐํฌ ํ์์ ๋์ ํ์ต๋๋ค. ์ปฌ๋ ์ ์ ํ๋ ์ด๋ถ, ์ญํ , ๋ชจ๋ ๋ฐ ํ๋ฌ๊ทธ์ธ์ด ํฌํจ๋ ์ ์์ผ๋ฏ๋ก ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋ ์ ํฉํด ๋ณด์ ๋๋ค.
๋ช ๊ฐ์ง ํฌ์ธํฐ:
๋๋ ๊ฐค๋ญ์ ์ปฌ๋ ์
์ผ๋ก ์ฌ๊ตฌ์ฑํ๋ ๊ฒ์ ์ฐ๋ ๊ณ all.yml
ํ๋ ์ด๋ถ๊ณผ ๋๋ถ๋ถ์ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์ฑ(ssl ๋ฐ sasl/plain ๋ฆฌ์ค๋)์ผ๋ก ์์
ํ๋ ๊ฒ์ ํ
์คํธํ์ต๋๋ค. ์ผ๋ถ๋ ๋งค์ฐ ํฌ๋ฐํฉ๋๋ค. ์ฃผ๋ก ๋ด๊ฐ ๋งํ ์ ์๋ ํ ํํฐ์ ๋ชจ๋์ ์ฐธ์กฐํ๋ ค๋ฉด ์ ์ฒด ์ํ ์ด๋ฆ ๊ณต๊ฐ์ ์ฐธ์กฐํด์ผ ํฉ๋๋ค. ๋ด ์ฌ์ฉ ์ฌ๋ก์ ์ ํฉํ๋ฉฐ ํ์์ ์ถ๊ฐํ ๊ฐ์น๊ฐ ์๋ค๊ณ ์๊ฐํ๋ฉด PR์ ์ด๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค.
https://github.com/aig787/cp-ansible/tree/agriffin/5.4.1-repack
@aig787 ์ข์์! ๋๋ ํญ์ ์
๊ทธ๋ ์ด๋ ํ๋ ์ด๋ถ์ด "ํ๋ ์ด๋ถ" ๋๋ ํ ๋ฆฌ์ ์์ด์ผ ํ๋ค๊ณ ์๊ฐํ์ต๋๋ค.
์ญํ ์ ํ๋ฌ๊ทธ์ธ ๋๋ ํ ๋ฆฌ์ ๋ด์ฉ์ ์ก์ธ์คํ ์ ์์ต๋๊น?
๋ํ confluentinc_cp ๋๋ ํ ๋ฆฌ๊ฐ ํ์ํฉ๋๊น?
ํ ๊ฐ์ง ๊น๋ค๋ก์ด ๋ถ๋ถ์ ansible.cfg์ ๋๋ค. ์ ๋ ํญ์ ํ๋ ์ด๋ถ ๋ฐ๋ก ์์ ์๋ ๊ฒ์ ์ข์ํ์ต๋๋ค.
์ญํ ์ ๋ชจ๋ ํ๋ฌ๊ทธ์ธ ๋๋ ํ ๋ฆฌ(https://docs.ansible.com/ansible/devel/dev_guide/develping_collections.html#plugins-directory)์ ์๋ ํญ๋ชฉ์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ์ก์ธ์คํ๋ ค๋ฉด ์ ์ฒด ์ด๋ฆ์ ์ฌ์ฉํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์๋ฅผ ๋ค์ด ํํฐ๊ฐ ์๋ํ๋๋ก ํ๋ ค๋ฉด KAFKA_OPTS: "{{ kafka_broker_final_java_args | java_arg_build_out }}"
๋ฅผ KAFKA_OPTS: "{{ kafka_broker_final_java_args | aig787.confluent_cp.java_arg_build_out }}"
๋ก ๋ณ๊ฒฝํด์ผ ํ์ต๋๋ค. ์ฐํํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ ์ ์์ง๋ง ์ฐพ์ง ๋ชปํ์ต๋๋ค.
๋ฐฉ๊ธ confluentinc_cp ๋๋ ํ ๋ฆฌ๋ฅผ ์ ๊ฑฐํ ์ํ์์ ์๋ํ๋๋ฐ ์ ๋๋ก ์๋ํ์ผ๋ฏ๋ก ํ์ํ์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค. ์ฒ์์ ansible-galaxy collection init
๋ถํธ์คํธ๋ฉํ๊ณ ์์ฑ๋ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
sible.cfg๊ฐ ๋๋จธ์ง์ ํจ๊ป ํ๋ ์ด๋ถ ๋๋ ํ ๋ฆฌ๋ก ์ด๋ํ ์ ์๋ ์ด์ ๊ฐ ์์ต๋๊น? ํ๋ ์ด๋ถ์ ์ฌ์ฉํ๋ ค๋ฉด ์ฌ๋๋ค์ด ์ฌ์ ํ ์ ์ฅ์๋ฅผ ๋ณต์ ํ๊ณ ์ง๊ธ์ฒ๋ผ ์คํํด์ผ ํ๋ค๊ณ _์๊ฐ_ํฉ๋๋ค. ์ํ๊ณ์ ์๋ ๊ฒ์ ์ฅ์ ์ ํ๋ ์ด๋ถ์ ๋ ์ฝ๊ฒ ๋ง๋๋ ๊ฒ๋ณด๋ค ์ฌ๋๋ค์ด ์์ ์ ์ค์ ์์ ์ญํ ์ ์ก์ธ์คํ ์ ์๋๋ก ํ๋ ๊ฒ์ ๋๋ค. ์ด์จ๋ ๋ด 2 ์ผํธ์ ๋๋ค.
์ ๋ ๊ฐ์ธ์ ์ผ๋ก ansible.cfg๊ฐ ์ด๋์ ์๋์ง ์ ๊ฒฝ ์ฐ์ง ์์ต๋๋ค. ํ๋ ์ด๋ถ์ ์คํํ๊ณ ํ์ฌ ๋๋ ํ ๋ฆฌ๊ฐsible.cfg๊ฐ ์๋ ์์น๊ฐ ์๋๋ฉด ๋ฌธ์ ๊ฐ ์๋ค๋ ๊ฒ๋ง ์๋๋ค.
๊ฐ๋ฅํ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ค์ํ๊ณ ์ปฌ๋ ์ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๋ฐ๋ฅด๋ ๊ฒ์ ๊ฐ์น๋ฅผ ์ ์ ์์ง๋ง ์ด ์ปฌ๋ ์ ์ ์ํ๊ณ์ ๊ฒ์ํจ์ผ๋ก์จ ์ป์ ์ ์๋ ์ด์ ์ด ๋ฌด์์ธ์ง ๊ถ๊ธํฉ๋๋ค. ๋ ๋ง์ ๊ฐ์์ฑ?
๋์๊ฒ ์ํ๊ณ์ ์ฐ๋ฆฌ ์ง์ฌ์์ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ์ ๋ง์ ์ค๋ฒํค๋์ฒ๋ผ ๋ณด์ ๋๋ค.
๊ทธ๊ฒ์ ์ฌ์ฉ์ ์ฉ์ด์ฑ ์ด๋์ด ๋ ๊ฒ์ ๋๋ค. ๋ชจ๋ ๋ ธ๋์ ๊ธฐ๋ณธ ๊ตฌ์ฑ์ ์ํํ๋ ํ๋ ์ด๋ถ์ด ์๋ ๊ฒฝ์ฐ ์ด๋ฅผ ์๊ตฌ ์ฌํญ ํ์ผ์ ์ถ๊ฐํ๊ณ `ansible-galaxy install -r requirements.yml'์ ์คํํ๊ณ ๋ณต์ ํ ํ์ ์์ด ๊ธฐ์กด ํ๋ ์ด๋ถ์์ kafka ์ญํ ์ ์ฐธ์กฐํ ์ ์์ต๋๋ค. ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ง๋ค๊ณ ํ๋ ์ด๋ถ์ ํ์ฅํ๊ฑฐ๋ ์ญํ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ณต์ฌํฉ๋๋ค.
์ค์ ๋ก ๊ฒ์ํด์ผ ํ๋ ์ด์ ์ ๊ดํด์๋ ์ปฌ๋ ์ ์ด ์ญํ ๊ณผ ๊ฐ์ ์์ ์ฐธ์กฐ๋ฅผ ์ง์ํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค(https://galaxy.ansible.com/docs/using/installing.html#installing-multiple-roles-from-a -file ๋ https://docs.ansible.com/ansible/latest/user_guide/collections_using.html#install-multiple-collections-with-a-requirements-file). ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ํ ์ค๋ฒํค๋์ ์์ ๋ํด ๋์ํฉ๋๋ค. ์ฝ๊ฐ ๋ฌด๊ฑฐ์ ๋ณด์ ๋๋ค.
์ ๋ ๊ฐ์ธ์ ์ผ๋ก Galaxy์ ์๋์ง ์ฌ๋ถ์ ์๊ดํ์ง ์์ง๋ง ์๊ตฌ ์ฌํญ ํ์ผ์์ ๋ค๋ฅธ ์ญํ ์ ์ฝ๊ฒ ์ฐธ์กฐํ ์ ์๋ค๋ ๊ฒ์ ์ ๋ง ๊ฐ์ฌํ ์ผ์ ๋๋ค.์ค๋ง์ผ:
์ ๋ฌธ์ ๋ฅผ ๋ฑ๋กํ๋ ค๊ณ ํ์ผ๋ ๋ด ๋ฌธ์ ๊ฐ ์ด ๋ฌธ์ ์ ๊ด๋ จ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฐ๋ผ์ ์ฌ๊ธฐ์์ ์ฝ๋ฉํธ๋ก ์์ํ์ฌ ๊ด๋ฆฌ์์ ์ง์ผ๋ณด๊ณ ์๋ ๋ค๋ฅธ ์ฌ๋๋ค๋ก๋ถํฐ ์ด๊ธฐ ํผ๋๋ฐฑ์ ์ป์ผ์ญ์์ค.
์ด ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ญํ ์ ์ฌ์ฉํ๊ณ ์ถ์ง๋ง ๋ด ์ฌ์ฉ์ ์ง์ ์ญํ (์ญํ ํ์ฅ)์ ์ญํ ์ข ์์ฑ์ผ๋ก ์ฌ์ฉํ๊ณ ์ถ์ต๋๋ค. ์ฐ๋ฆฌ๋ ํ๋ ์ด๋ถ(all.yml)์ ์ฌ์ฉํ์ฌ ์์ํ์ง๋ง ์ ํํ ํ์ด๋ฐ์ ํ์ฅ ๊ธฐ๋ฅ์ ์ ์ฉํ๋ ๋ฐ ๋ง์ ์ด๋ ค์์ ๊ฒช์์ต๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ์ฒซ ๋ฒ์งธ(์ฐจ๋จ) ๋ฌธ์ ๋ https://github.com/confluentinc/cp-ansible/pull/442 ๋ก ์์ ๋์์ต๋๋ค
[DEPRECATION WARNING]: Included file
'/builds/kafka/provisioner/tasks/failure_handling.yml' not found, however since
this include is not explicitly marked as 'static: yes', we will try and
include it dynamically later. In the future, this will be an error unless
'static: no' is used on the include task. If you do not want missing includes
to be considered dynamic, use 'static: yes' on the include or set the global
ansible.cfg options to make all includes static for tasks and/or handlers. This
feature will be removed from ansible-base in version 2.12. Deprecation
warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
๋ํ
์ผ์ ๋ณด๋ ์ ์ฒด์ ์ธ ๋ฌธ์ ๋ ํ์ฌ ์ญํ ์ด ์์กฑ์ ์ด์ง ์๋ค๋ ์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ด๋ฅผ ์์ ํ๋ ๊ฒ์ ๊ฒฐ๊ตญ Ansible Galaxy์ ์ญํ ๋๋ ์ญํ ์ปฌ๋ ์
์ ๊ฒ์ํ๊ธฐ ์ํ ํ์ ๋จ๊ณ์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ์ญํ ๋ด์์ ๋ค์ ์ต์์ ๋๋ ํ ๋ฆฌ /filter_plugins
๋ฐ /tasks
์ ๋ํ ์ฐธ์กฐ๋ก ์์ฝ๋๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ์์ฃผ ์ฝ๊ฒ ๊ณ ์น ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
pull ์์ฒญ์ผ๋ก ๋ค์ ์์ ์ ๋ํด ์ด๋ป๊ฒ ์๊ฐํ์ญ๋๊น?
/filter_plugins
ํด๋๋ฅผ confluent.variables
์ญํ ๋ก ์ด๋ํ์ฌ ํด๋น ์ญํ ์ ์ผ๋ถ๋ก ๋ง๋์๊ฒ ์ต๋๊น? ํํฐ ํ๋ฌ๊ทธ์ธ์ ์ต์ํ ์ด ์ญํ ์์ ์ฌ์ฉ ์ค์
๋๋ค.
/tasks
์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์์
ํ์ผ์ ๊ธฐ์กด ์ญํ ์ค ํ๋๋ก ์ด๋ํฉ๋๋ค. ์๋ง๋ confluent.common
๊ฐ ๊ธฐ์กด ์ญํ ์ ๊ฐ์ฅ ์ ํฉํ๊ฑฐ๋ ํด๋น ์ญํ ์ ์ํ ์๋ก์ด ์ ์ฉ ์ญํ ์ ์์ฑํ๋ ๊ฒ์
๋๋ค( confluent.common_tasks
)? ๊ทธ๋ฆฌ๊ณ include_role#tasks_from์ ์ฌ์ฉํ์ฌ ์ฌ์ฌ์ฉ๋ ์์
ํ์ผ์ ๋ํ ์ฐธ์กฐ๋ฅผ ์
๋ฐ์ดํธํฉ๋๋ค. ์์:
Index: roles/confluent.zookeeper/tasks/health_check.yml
<+>UTF-8
===================================================================
--- roles/confluent.zookeeper/tasks/health_check.yml (revision 0d369ae20c8215dd2ec469f269dc804539f58190)
+++ roles/confluent.zookeeper/tasks/health_check.yml (date 1602793473938)
@@ -25,7 +25,9 @@
ignore_errors: true
- name: Fetch Files for Debugging Failure
- include: tasks/failure_handling.yml
+ include_role:
+ name: confluent.common
+ tasks_from: failure_handling.yml
vars:
service_name: "{{zookeeper_service_name}}"
config_file: "{{zookeeper.config_file}}"
@erikgb ๊ณผ๊ฑฐ์ ๋ด๋ถ์ ์ผ๋ก ๋
ผ์ํ ๋ด์ฉ์
๋๋ค. ํนํ ์์ฒด ํฌํจ๋ ์ญํ ๊ณผ ์ฝ๋ ์ค๋ณต ์ต์ํ์ ๋ํ ๋
ผ์๊ฐ ์๋นํ ๋ง์์ต๋๋ค. 2.12์์๋ ์ด๊ฒ์ ๋ณ๊ฒฝํด์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค. ๊ฒฝ๊ณ ์ ๋ฐ๋ผ Ansible์ด ๋ฆด๋ฆฌ์ค๋์์ผ๋ฏ๋ก /filter_plugins
๋ฐ /tasks
๋ฅผ ๋ชจ๋ confluent.common
์ญํ ๋ก ์ด๋ํ ๋ค์ ์ ์ ํ ๋ค๋ฅธ ๋ชจ๋ ์ญํ ์ import ๋ฌธ.
@domenicbove ๋น์ ์ ์๊ฐ์ ๋ฌด์์ ๋๊น?
๊ธฐ๋ฅ์ด ์ผ๊ด๋๊ฒ ์ ์ง๋๋ ํ ํ์ผ ์์น๋ฅผ ์ด๋ํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. @erikgb @JumaX.
์ด๊ฒ์ ์ฐ๋ฆฌ์ ๋ค์ ๋ฆด๋ฆฌ์ค๋ฅผ ๋ชฉํ๋ก ํ๋ ๋ง์คํฐ ๋ธ๋์น๋ก ์ด๋ํด์ผ ํ ๋งํผ ์ถฉ๋ถํ ํฐ ์์
์ธ ๊ฒ ๊ฐ์ต๋๋ค.
@domenicbove ๋ค์ ์ฃผ์ ๋ฆด๋ฆฌ์ค๋ฅผ ์ํ ์์ ์ ๋์ํ์ต๋๋ค. @erikgb ๋ด๋ถ JIRA๋ฅผ ์ถ๊ฐํ์ฌ ์ด๋ฅผ ์ถ์ ํ๊ณ ๋ค์ ๋ฆด๋ฆฌ์ค์ ๋ก๋๋งต์ ํฌํจ์ํฌ ์ ์๋์ง ํ์ธํ ๊ฒ์ ๋๋ค.
๋๋ @erikgb ๋ธ๋์น์ ์์ ์ด ์๋ ๊ฒฝ์ฐ ๋ง์คํฐ ๋ธ๋์น์ PR์ ์์ฑํ๋ฉด ๊ฒํ ํ๊ฒ ์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ์ด ๋ฌธ์ ๋ฅผ ์์ ํ ํด๊ฒฐํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ง๋ง, ์ฐ๋ฆฌ๋ ์ฌ์ ํ ์ํ๊ณ๋ฅผ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
๋ค์ ์ฃผ์ ๋ฆด๋ฆฌ์ค? ๊ทธ๊ฒ์ด Confluent Platform 7์ด ๋ ๊น์? ์ด ๋ณ๊ฒฝ ์ฌํญ์ ์ฃผ์ ์ง์ ์ ์ด ํ๋ ์ด๋ถ๊ณผ ์ญํ ์ด๋ผ๊ณ ์๊ฐํ๋ ํ ์ด์ ๋ฒ์ ๊ณผ ํธํ๋ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. CP 7 ์ด์ ์ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์ถ์ต๋๋ค. ๐
@erikgb CP 6.1
@domenicbove @JumaX CP 6.1์ด ๋ ํฉ๋ฆฌ์ ์ ๋๋ค. ์ด๋ฒ ์ฃผ ํ๋ฐ์ pull ์์ฒญ์ ์ฒ๋ฆฌํ ์๊ฐ์ด ์๋์ง ํ์ธํ๊ฒ ์ต๋๋ค. ๋ฆฌํฉํ ๋ง์ ์๋ฏธ ์๋ ๋ถ๋ถ์ผ๋ก ๋ถํ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด๋ป๊ฒ ์๊ฐํ์ญ๋๊น?
@erikgb ์ฌ๋ฌ PR๋ก ๋ถํ ํ๋ ค๋ ๊ฒฝ์ฐ ๊ฐ PR์ด ์ถ๊ฐ PR ์์ด ๊ณ์ ์คํ๋ ์ ์๋ค๊ณ ๊ฐ์ ํ๋ฉด ๊ด์ฐฎ์ต๋๋ค. ๋ด๊ฐ ๊ทธ๊ฒ์ ์ ์ง์ ํ๋์ง ํ์คํ์ง ์์ต๋๋ค. :). ๋ง์คํฐ ๋ธ๋์น๋ฅผ ๋ชฉํ๋ก ํด์ผ ํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
Ansible 2.9๋ Collections๋ผ๋ ์๋ก์ด ๋ฐฐํฌ ํ์์ ๋์ ํ์ต๋๋ค. ์ปฌ๋ ์ ์ ํ๋ ์ด๋ถ, ์ญํ , ๋ชจ๋ ๋ฐ ํ๋ฌ๊ทธ์ธ์ด ํฌํจ๋ ์ ์์ผ๋ฏ๋ก ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋ ์ ํฉํด ๋ณด์ ๋๋ค.
๋ช ๊ฐ์ง ํฌ์ธํฐ: