Ansible-role-nginx-config: ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ nginx.conf๋ฅผ ๊ตฌ์„ฑํ•˜๋ฉด nginx_config_main_template_enable์ด true๋กœ ์„ค์ •๋˜์–ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2021๋…„ 06์›” 17์ผ  ยท  4์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: nginxinc/ansible-role-nginx-config

๋ฒ„๊ทธ ์„ค๋ช…

๊ธฐ๋ณธ ๊ธฐ๋ณธ ํ…œํ”Œ๋ฆฟ์—์„œ ๋‹จ ํ•˜๋‚˜์˜ ์„ค์ •( server_names_hash_bucket_size )์„ ์žฌ์ •์˜ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
ํŒŒ์ผ ์ƒํƒœ์˜ ์ฃผ์„ "# ๊ธฐ๋ณธ๊ฐ’์€ ์ƒˆ NGINX ์„ค์น˜์—์„œ ์ฐพ์€ ๊ฐ’์ž…๋‹ˆ๋‹ค." ๊ทธ๋ž˜์„œ nginx_config_main_template_enable ํ™œ์„ฑํ™”ํ•˜๊ณ  ์˜ฌ๋ฐ”๋ฅธ ํ•˜์œ„ ํ‚ค๋ฅผ ์žฌ์ •์˜ํ•˜๋ฉด ๋‹ค๋ฅธ ๊ฐ’์„ ์œ ์ง€ํ•˜๋ฏ€๋กœ ํŠธ๋ฆญ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์‚ฌ์šฉ์ž ์ง€์ • ์„ค์ •์— ๋Œ€ํ•œ ๋‚ด ์ˆ˜์ •์„ ์ฃผ์„๊ณผ ํ•จ๊ป˜ ์—ญํ• ์„ ์ ์šฉํ•˜๋ ค๊ณ , ๊ทธ๋ž˜์„œ์ด ์•„๋‹ˆ๋ผ ์ผํ–ˆ๋‹ค ๋‹จ์ง€ nginx_config_main_template_enable ๋กœ ์„ค์ • true ํ•˜์ง€๋งŒ ๊ทธ๊ฒƒ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

nginx_config_main_template_enable ๊ฐ€ true ๋กœ ์„ค์ •๋œ ์—ญํ• ์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ธฐ๋ณธ ์—ญํ•  ๊ฐ’์œผ๋กœ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

์žฌํ˜„ํ•˜๋‹ค

๋™์ž‘์„ ์žฌํ˜„ํ•˜๋Š” ๋‹จ๊ณ„:

  1. playbook.yml์„ ์‚ฌ์šฉํ•˜์—ฌ NGINX ๊ตฌ์„ฑ ์—ญํ•  ๋ฐฐํฌ
- name: NGINX
  hosts: nginx
  debugger: on_failed
  become: true

  pre_tasks:
  - name: Enabling nginx_config_main_template
    set_fact:
      nginx_config_main_template_enable: true
  roles:
  - role: nginxinc.nginx
  - role: nginxinc.nginx-config
  1. ์ถœ๋ ฅ ์˜ค๋ฅ˜๋Š” (์ž์„ธํ•œ ์ •๋ณด ํ‘œ์‹œ๋ฅผ ์œ„ํ•ด -vvv ์˜ต์…˜ ์‚ฌ์šฉ)
TASK [nginxinc.nginx-config : Dynamically generate NGINX main configuration file] ***********************************************************************************************************
task path: /home/xxx/ansible/yyy/roles/nginxinc.nginx-config/tasks/config/template-config.yml:37
fatal: [nginx_0]: FAILED! => {
    "changed": false,
    "msg": "AnsibleUndefinedVariable: 'dict object' has no attribute 'dest'"
}

Dynamically generate NGINX main configuration file ์—๋Š” ๋Œ€์ƒ ํŒŒ์ผ( /etc/nginx/nginx.conf )์— ๋Œ€ํ•œ ๋Œ€์ฒด ๊ธฐ๋ณธ๊ฐ’์ด ์žˆ์œผ๋ฏ€๋กœ ์‹คํŒจํ•ด์„œ๋Š” ์•ˆ ๋˜๋ฏ€๋กœ ์–ด๋–ค 'dict ๊ฐœ์ฒด'๊ฐ€ ์‹คํŒจํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ๋” ์ด์ƒ ์ •๋ณด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์˜ˆ์ƒ๋˜๋Š” ํ–‰๋™

๋Œ“๊ธ€์—๋Š” "# ๊ธฐ๋ณธ๊ฐ’์€ ์ƒˆ NGINX ์„ค์น˜์—์„œ ์ฐพ์€ ๊ฐ’์ž…๋‹ˆ๋‹ค."๋ผ๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ธฐ๋ณธ๊ฐ’์„ ์‚ฌ์šฉํ•˜์—ฌ ํ‘œ์ค€ nginx.conf ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ท€ํ•˜์˜ ํ™˜๊ฒฝ:

  • ๊ธฐ๋ณธ
  • Ansible ๋ฒ„์ „: ansible 2.9.17
  • Jinja2 ๋ฒ„์ „: 2.11.2
  • ๋Œ€์ƒ ๋ฐฐํฌ ํ”Œ๋žซํผ: Debian Buster

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

๋ฒ„๊ทธ๋ฅผ ์ฐพ์•˜๊ณ  ์ „ํ†ต๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ช‡ ๊ฐ€์ง€ ๋‹ค๋ฅธ ๋ฒ„๊ทธ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ค‘ ํ•˜๋‚˜๋Š” # Defaults are the values found in a fresh NGINX installation ์ฃผ์„์ด ๋” ์ด์ƒ ์œ ํšจํ•˜์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜๋ฃจ๋นจ๋ฆฌ PR์„ ์ค€๋น„ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’ ์„ค๋ช…์€ ์ˆ˜์ • ํ›„์—๋„ ์—ฌ์ „ํžˆ ์™„์ „ํžˆ ์‚ฌ์‹ค์ด ์•„๋‹ ์ˆ˜ ์žˆ์ง€๋งŒ ์ง€๊ธˆ๋ณด๋‹ค ๋” ๊ฐ€๊นŒ์›Œ์•ผ ํ•ฉ๋‹ˆ๋‹ค ๐Ÿ˜„

์™„๋ฒฝํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ์ด๊ฒƒ๋งŒ ์ง€์ผœ์ฃผ์„ธ์š” :)

148์—์„œ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์„ ํ™•์ธํ•˜๊ณ  lmk! ๐Ÿ˜„

์•ˆ๋…•ํ•˜์„ธ์š”, PR์ด ์‹ค์ œ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค(๋ฐ๋น„์•ˆ์˜ ๊ธฐ๋ณธ www ์‚ฌ์šฉ์ž์ด๊ณ  ๋‚ด ์‹œ์Šคํ…œ์— nginx ์‚ฌ์šฉ์ž๊ฐ€ ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž๋ฅผ www-data๋กœ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค). ๋น ๋ฅธ ์ˆ˜์ • ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค :)

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