반응형
업그레이드가 필요한 경우에만 서비스를 중지하는 적절한 방법
Ansible Playbook에서는 업그레이드가 필요한 경우 MariaDB를 중지하고 싶습니다(RPM 패키지에서 재시작하는 것은 항상 내 상황에서는 작동하지 않습니다).나는 꽤 낯설다.
내가 생각해낸 건 이거야
- name: "Check if MariaDB needs to be upgraded"
shell: "yum check-update MariaDB-server|grep MariaDB|wc -l"
register: needs_update
- name: "Stop mysql service"
service:
name: mysql
state: stopped
when: needs_update.stdout == "1"
shell 명령어를 실행하여 이 작업을 수행하는 더 좋은 방법이 있습니까?실행할 때 경고가 표시됩니다.
TASK [mariadb_galera : Check if MariaDB needs to be upgraded] ******************
changed: [139.162.220.42] => {"changed": true, "cmd": "yum check-update MariaDB-server|grep MariaDB|wc -l", "delta": "0:00:00.540862", "end": "2017-03-01 13:03:34.415272", "rc": 0, "start": "2017-03-01 13:03:33.874410", "stderr": "", "stdout": "0", "stdout_lines": ["0"], "warnings": ["Consider using yum module rather than running yum"]}
[WARNING]: Consider using yum module rather than running yum
감사해요!
다음 방법으로 경고를 숨길 수 있습니다.
- name: "Check if MariaDB needs to be upgraded"
shell: "yum check-update MariaDB-server|grep MariaDB|wc -l"
args:
warn: false
register: needs_update
아니면 앤서블을 속여서yum
과업check_mode
:
- name: "Check if MariaDB needs to be upgraded (CHECK MODE!)"
yum:
name: MariaDB-server
state: latest
check_mode: yes
register: needs_update_check
- name: "Stop mysql service"
service:
name: mysql
state: stopped
when: needs_update_check | changed
사용하기 전에 이 코드를 테스트하십시오.
이것을 다루는 가장 좋은 방법은 "핸들러"를 사용하는 것입니다. 예를 들어,
tasks:
- name: Update db
yum: name=MariaDB-server state=latest
notify:
- stop db
handlers:
- name: stop db
service: name=MariaDB-server state=stopped
여러 작업을 수행해야 하는 경우 여러 핸들러를 지정할 수 있지만 DB를 재시작하는 경우 stopped 대신 restarted를 사용합니다.
http://docs.ansible.com/ansible/playbooks_best_practices.html
언급URL : https://stackoverflow.com/questions/42532659/ansible-way-to-stop-a-service-only-if-it-needs-to-be-upgraded
반응형
'itsource' 카테고리의 다른 글
MySQL/Amazon RDS 오류: "SUPER 권한이 없습니다.." (0) | 2022.09.21 |
---|---|
innerText와 inner의 차이HTML과 가치? (0) | 2022.09.21 |
JS는 PHP 함수 number_format에 해당하는 것은 무엇입니까? (0) | 2022.09.21 |
어떻게 자바에 문자를 보내기. (0) | 2022.09.21 |
Android를 통해 Google Maps Directions 실행 (0) | 2022.09.19 |