conf.d/*.conf μ 리λ₯Ό νΈλ¦¬κ±°ν΄μΌ νλ μ½λκ° μ 리λμ§ μμ΅λλ€.
λμμ μ¬ννλ λ¨κ³:
nginx_config_cleanup : '{{ my_cleanup }}'
# this clean up only happens if the above variable is true
nginx_config_cleanup_paths:
- directory:
- /etc/nginx/conf.d
recurse: false
nginx_config_cleanup_files:
- /etc/nginx/conf.d/default.conf
TASK [nginxinc.nginx_config : Find NGINX config files] ************************************************************************************************************************************************************************************************************************
ok: [testing-snap05.MYDOMAIN.TLD] => (item={'directory': ['/etc/nginx/conf.d'], 'recurse': False}) => {"ansible_loop_var": "item", "changed": false, "examined": 13, "files": [{"atime": 1616512425.5879788, "ctime": 1616512425.0159645, "dev": 64780, "gid": 0, "gr_name": "root", "inode": 652034, "isblk": false, "ischr": false, "isdir": false, "isfifo": false, "isgid": false, "islnk": false, "isreg": true, "issock": false, "isuid": false, "mode": "0644", "mtime": 1616512424.6879563, "nlink": 1, "path": "/etc/nginx/conf.d/testing-snap05.staging.MYDOMAIN.TLDX.conf", "pw_name": "root", "rgrp": true, "roth": true, "rusr": true, "size": 508, "uid": 0, "wgrp": false, "woth": false, "wusr": true, "xgrp": false, "xoth": false, "xusr": false}, {"atime": 1616511920.0872648, "ctime": 1616511919.343246, "dev": 64780, "gid": 0, "gr_name": "root", "inode": 652037, "isblk": false, "ischr": false, "isdir": false, "isfifo": false, "isgid": false, "islnk": false, "isreg": true, "issock": false, "isuid": false, "mode": "0644", "mtime": 1616511918.9712367, "nlink": 1, "path": "/etc/nginx/conf.d/testing-snap05.staging.MYDOMAIN.TLD.conf", "pw_name": "root", "rgrp": true, "roth": true, "rusr": true, "size": 507, "uid": 0, "wgrp": false, "woth": false, "wusr": true, "xgrp": false, "xoth": false, "xusr": false}, {"atime": 1616512481.8013923, "ctime": 1616512481.229378, "dev": 64780, "gid": 0, "gr_name": "root", "inode": 652039, "isblk": false, "ischr": false, "isdir": false, "isfifo": false, "isgid": false, "islnk": false, "isreg": true, "issock": false, "isuid": false, "mode": "0644", "mtime": 1616512480.8773692, "nlink": 1, "path": "/etc/nginx/conf.d/testing-snap05.staging.MYDOMAIN.TLDZ.conf", "pw_name": "root", "rgrp": true, "roth": true, "rusr": true, "size": 508, "uid": 0, "wgrp": false, "woth": false, "wusr": true, "xgrp": false, "xoth": false, "xusr": false}, {"atime": 1616512450.800613, "ctime": 1616512450.1845973, "dev": 64780, "gid": 0, "gr_name": "root", "inode": 652038, "isblk": false, "ischr": false, "isdir": false, "isfifo": false, "isgid": false, "islnk": false, "isreg": true, "issock": false, "isuid": false, "mode": "0644", "mtime": 1616512449.8325884, "nlink": 1, "path": "/etc/nginx/conf.d/testing-snap05.staging.MYDOMAIN.TLDY.conf", "pw_name": "root", "rgrp": true, "roth": true, "rusr": true, "size": 508, "uid": 0, "wgrp": false, "woth": false, "wusr": true, "xgrp": false, "xoth": false, "xusr": false}], "item": {"directory": ["/etc/nginx/conf.d"], "recurse": false}, "matched": 4, "msg": ""}
TASK [nginxinc.nginx_config : Remove NGINX config files] **********************************************************************************************************************************************************************************************************************
ok: [testing-snap05.MYDOMAIN.TLD] => (item=/etc/nginx/conf.d/default.conf) => {"ansible_loop_var": "item", "changed": false, "item": "/etc/nginx/conf.d/default.conf", "path": "/etc/nginx/conf.d/default.conf", "state": "absent"}
μ νλ¦¬κ° μμ±λκΈ° μ μ /etc/nginx/conf.d/*.confκ° μμ λ κ²μΌλ‘ μμνμ΅λλ€. κ·Έλ¬λ default.confλ§ μμ λ©λλ€.
μμμ κ°λ₯ν μν nginx-config
nginxinc.nginx, 0.19.1
μ€μλΈ: 2.9.6+dfsg-1
μ°λΆν¬ 20.04
μ’μ μΊμΉ. ν
μ€νΈμμλ default.conf
μ΄ μμ λ κ² μΈμλ μ무 κ²λ κ³ λ €νμ§ μμμ΅λλ€. λ€μ΄μ€λ PRμ μ΄ λ²κ·Έλ₯Ό ν΄κ²°νκ³ μ 리λλ μ 체 λλ ν 리μ λν μ μ ν ν
μ€νΈ μΌμ΄μ€λ₯Ό μΆκ°ν΄μΌ ν©λλ€.
git pull νμλ μ¬μ ν μ 리λμ§ μμ΅λλ€. default.confλ§ μ 리ν©λλ€. true λ° falseλ‘ μ€μ λ μ¬κ·λ₯Ό μλνμ΅λλ€.
(item=/etc/nginx/conf.d/default.conf) => {"ansible_loop_var": "item", "changed": false, "item": "/etc/nginx/conf.d/default.conf", "path": "/etc/nginx/conf.d/default.conf", "state": "absent"}
Jinja2 μ λ°μ΄νΈ νμλ μ λ¦¬κ° μ¬μ ν μλνμ§ μμ΅λλ€. μ΄κ±° λ€μ μ΄μ΄λ³ΌκΉμ?
TASK [nginxinc.nginx_config : Find NGINX config files] ************************************************************************************************************************************************************************************************************************
ok: [testing-snap05.MYDOMAIN.TLD] => (item={'directory': ['/etc/nginx/conf.d'], 'recurse': True}) => {"ansible_loop_var": "item", "changed": false, "examined": 7, "files": [{"atime": 1616759901.1814494, "ctime": 1616759896.8093383, "dev": 64780, "gid": 0, "gr_name": "root", "inode": 652060, "isblk": false, "ischr": false, "isdir": false, "isfifo": false, "isgid": false, "islnk": false, "isreg": true, "issock": false, "isuid": false, "mode": "0644", "mtime": 1616759896.5933328, "nlink": 1, "path": "/etc/nginx/conf.d/testing-snap05.staging.MYDOMAIN.TLD_adhoc.conf", "pw_name": "root", "rgrp": true, "roth": true, "rusr": true, "size": 2, "uid": 0, "wgrp": false, "woth": false, "wusr": true, "xgrp": false, "xoth": false, "xusr": false}, {"atime": 1616777440.7914264, "ctime": 1616777440.3514154, "dev": 64780, "gid": 0, "gr_name": "root", "inode": 652158, "isblk": false, "ischr": false, "isdir": false, "isfifo": false, "isgid": false, "islnk": false, "isreg": true, "issock": false, "isuid": false, "mode": "0644", "mtime": 1616777440.13941, "nlink": 1, "path": "/etc/nginx/conf.d/testing-snap05.staging.MYDOMAIN.TLD.conf", "pw_name": "root", "rgrp": true, "roth": true, "rusr": true, "size": 1255, "uid": 0, "wgrp": false, "woth": false, "wusr": true, "xgrp": false, "xoth": false, "xusr": false}], "item": {"directory": ["/etc/nginx/conf.d"], "recurse": true}, "matched": 2, "msg": ""}
TASK [nginxinc.nginx_config : Remove NGINX config files] **********************************************************************************************************************************************************************************************************************
μλ‘μ΄ ν
μ€νΈκ° ν΅κ³Όλκ³ μμΌλ―λ‘ μ΄κ²μ΄ μν μ λ²κ·ΈμΈμ§ μμ ν νμ ν μ μμ΅λλ€. λν κ·νμ μμ λμΌν νμΌ μ΄λ¦μ μ¬μ©ν΄ 보μμ§λ§ μ¬λ°λ₯΄κ² μμ λμμ΅λλ€.λΆμ ν
μ€νΈ
TASK [ansible-role-nginx-config : Find NGINX config files] *********************
ok: [ubuntu-bionic] => (item={'directory': ['/etc/nginx/conf.d'], 'recurse': False})
ok: [centos-7] => (item={'directory': ['/etc/nginx/conf.d'], 'recurse': False})
ok: [debian-buster] => (item={'directory': ['/etc/nginx/conf.d'], 'recurse': False})
ok: [alpine-3.10] => (item={'directory': ['/etc/nginx/conf.d'], 'recurse': False})
TASK [ansible-role-nginx-config : Remove NGINX config files] *******************
changed: [centos-7] => (item=/etc/nginx/conf.d/default.conf)
changed: [debian-buster] => (item=/etc/nginx/conf.d/default.conf)
changed: [alpine-3.10] => (item=/etc/nginx/conf.d/default.conf)
changed: [ubuntu-bionic] => (item=/etc/nginx/conf.d/default.conf)
changed: [centos-7] => (item=/etc/nginx/conf.d/mock.conf)
changed: [debian-buster] => (item=/etc/nginx/conf.d/mock.conf)
changed: [alpine-3.10] => (item=/etc/nginx/conf.d/mock.conf)
changed: [ubuntu-bionic] => (item=/etc/nginx/conf.d/mock.conf)
changed: [centos-7] => (item=/etc/nginx/conf.d/testing-snap05.staging.MYDOMAIN.TLD.conf)
changed: [ubuntu-bionic] => (item=/etc/nginx/conf.d/testing-snap05.staging.MYDOMAIN.TLD.conf)
changed: [debian-buster] => (item=/etc/nginx/conf.d/testing-snap05.staging.MYDOMAIN.TLD.conf)
changed: [alpine-3.10] => (item=/etc/nginx/conf.d/testing-snap05.staging.MYDOMAIN.TLD.conf)
ok: [centos-7] => (item=/etc/nginx/conf.d/default.conf)
ok: [ubuntu-bionic] => (item=/etc/nginx/conf.d/default.conf)
ok: [debian-buster] => (item=/etc/nginx/conf.d/default.conf)
ok: [alpine-3.10] => (item=/etc/nginx/conf.d/default.conf)
μ΅μ Ansible 릴리μ€λ‘ μ
λ°μ΄νΈν΄ 보μ
¨μ΅λκΉ? λ°°νμμ μ¬μ©λλ λͺ¨λμ Ansible 2.9.6
μ΄νλ‘ μ
λ°μ΄νΈλμμ μ μμ΅λλ€. (μμ¦ μ¬μ©ν΄μΌ νλ μ λ μ΅μ Ansible 릴리μ€λ Ansible 컬λ μ
μ κΈ°λ³Έ μ§μμΌλ‘ μΈν΄ 2.9.10
μ
λλ€.)
Ubuntu 20.04μΈ μ΅μ Ubuntu LTSμ μ¬μ©ν μ μλ μ΅μ λ²μ μΈ Ansible 2.9.6μ΄ μμ΅λλ€.
pip
λλ Ansibleμ ν¨ν€μ§ μ μ₯μ https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#installing -ansible-on-ubuntuλ₯Ό μ¬μ©νμ¬ μ΅μ 릴리μ€λ₯Ό μ€μΉν μ μμ΅λλ€. κ·Έλ μ§ μμΌλ©΄ μΌλ°μ μΌλ‘ μ΄μμ μ΄μ§ μμ Ubuntuμ ν¨ν€μ§ 리ν¬μ§ν 리μμ μ¬μ©ν μ μλ μ΅μ 릴리μ€λ₯Ό μ¬μ©νκ² λ©λλ€.
λ΄μμλμ΄ μ€λ₯κ° λ°μνμ΅λλ€. brew
μμ μ¬μ© κ°λ₯ν μ΅μ νλͺ©:
> ansible --version
ansible [core 2.11.3]
λλ²κ·Έλ‘
register: nginx_config_files
- debug:
msg: "{{ nginx_config_files.files }}"
- name: Remove NGINX config files
λλ μ μ
TASK [nginxinc.nginx_config : Find NGINX config files] *********************************************************************************
ok: [ansible-test] => (item={'directory': ['/etc/nginx/conf.d', '/etc/nginx/snippets'], 'recurse': True})
TASK [nginxinc.nginx_config : debug] ***************************************************************************************************
fatal: [ansible-test]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'dict object' has no attribute 'files'\n\nThe error appears to be in '...../roles/nginxinc.nginx_config/tasks/config/cleanup-config.yml': line 11, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n- debug:\n ^ here\n"}
μ΄μ μ견μμ μΈκΈνλ―μ΄ νμ¬ μ΄ μ¬μ© μ¬λ‘μ λν λͺ
μμ ν
μ€νΈκ° μμΌλ©° λͺ¨λ ν΅κ³Όνκ³ μμ΅λλ€(https://github.com/nginxinc/ansible-role-nginx-config/blob/main/molecule/cleanup_module/ converge.yml). μ¬μ ν μν μ μ€ν¨νκ² λ§λλ μΌλΆ κ·Ήλ¨μ μΈ κ²½μ°κ° μμ μ μμ§λ§ μ§μ μ¬ννλ €λ©΄ λ μμΈν μ λ³΄κ° νμν©λλ€. μμ
μΆλ ₯μ΄ μ£Όμ΄μ§λ©΄ λ¬Έμ λ recurse
ν€μλκ° ν΄λΉ νλͺ© μΈλΆκ° μλλΌ κ° λλ ν 리 μ¬μ νλͺ©μ μνλ€λ κ²μ
λλ€(μμΈν λ΄μ©μ μ΄μ μ λ§ν¬ν Molecule ν
μ€νΈ νμΈ).
μΆμ : nginx_config_files.files
λ μ¬μ©λμ§ μμ΅λλ€(https://github.com/nginxinc/ansible-role-nginx-config/blob/main/tasks/config/cleanup-config.yml#L11-L17) π
@alessfg μ, μ€μ λ‘ λ°©κΈ μ°Ύμμ΅λλ€. λ΄ μ루μ
μ λν΄ κΈμ μ°λ €λ©΄ μ¬κΈ°λ‘ μ€μΈμ :)
λ¬Έμ λ Galaxyμ κ²μλ μ΅μ 릴리μ€(λ΄ νλ μ΄λΆμ μ¬μ©)μ 0.3.3 λ²μ μ΄ ν¬ν¨λμ΄ μλ€λ κ²μ
λλ€. μμ±ν μ΄λ¬ν λ³κ²½ μ¬νμ μ΄ νκ·Έμλ μμΌλ©° main
μλ§ μμ΅λλ€. κ·Έλμ μ λ requirements.ymlμ μν΄ μμ€λ₯Ό git μ μ₯μλ‘ μ ννμ΅λλ€.