![ansible을 사용하여 구성 파일의 특정 섹션에 데이터 삽입](https://linux55.com/image/114120/ansible%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EA%B5%AC%EC%84%B1%20%ED%8C%8C%EC%9D%BC%EC%9D%98%20%ED%8A%B9%EC%A0%95%20%EC%84%B9%EC%85%98%EC%97%90%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EC%82%BD%EC%9E%85.png)
ansible을 사용하는 데 특별한 문제가 있습니다. 이 질문은 매우 이상하고 위험합니다. 파일의 특정 부분에 데이터를 삽입하는 코드를 작성했습니다. 즉, [database]
say 뒤에 줄을 추가합니다 /etc/cinder/cinder.conf
.
문제는 때때로 태그 뒤에 콘텐츠를 올바르게 추가 [database]
하지만 때로는 파일의 한 줄을 보고 혼란스러워지고 # put ur infore here for [database]
실제로 있어야 할 위치 대신 그 아래에 필요한 줄을 추가한다는 것입니다.
- name: Adding Entries in "/etc/cinder/cinder.conf"
lineinfile:
dest: "/etc/cinder/cinder.conf"
insertafter: "{{ item.inserts }}"
state: present
line: "{{ item.lines }}"
with_items:
- { inserts: '\[database\]', lines: 'rpc_backend = rabbit' }
이러한 상황은 프로덕션 환경에서는 매우 위험합니다! 데이터를 올바르게 추가하는 방법은 무엇입니까?
답변1
주석 일치를 방지하려면 정규식을 줄 시작 부분에 고정하세요.
- { inserts: '^\[database\]', lines: 'rpc_backend = rabbit' }
답변2
ini_file
모듈을 사용할 수 있습니다general collection
:
- name: Adding Entries in "/etc/cinder/cinder.conf"
community.general.ini_file:
path: "/etc/cinder/cinder.conf"
section: database
option: rpc_backend
value: rabbit
backup: true
컬렉션을 설치하려면 다음을 실행하세요.
$ ansible-galaxy collection install community.general
requirements.yaml
또는 다음과 같이 추가하십시오 .
collections:
- name: community.general
version: 5.0.1
그런 다음 실행
$ ansible-galaxy install -r requirements.yaml