내 플레이 북에 zzet.rbenv role을 사용 중입니다. 프로비저닝 된 시스템에 복사하는 files/default-gems
파일이 있습니다.책임있는 사람의 역할 파일을 덮어 쓰는 방법?
은 내가 zzet.rbenv/files/default-gems
, 그렇지 않은 경우 사용하여 myplaybook/files/default-gems
를 확인하고 존재하는 경우를 를 사용하여 내 작전이 필요합니다.
어떻게하면됩니까?
내 플레이 북에 zzet.rbenv role을 사용 중입니다. 프로비저닝 된 시스템에 복사하는 files/default-gems
파일이 있습니다.책임있는 사람의 역할 파일을 덮어 쓰는 방법?
은 내가 zzet.rbenv/files/default-gems
, 그렇지 않은 경우 사용하여 myplaybook/files/default-gems
를 확인하고 존재하는 경우를 를 사용하여 내 작전이 필요합니다.
어떻게하면됩니까?
일부 연구 및 시행 착오 후. 나는 Anabilities가 파일 사이에 파일이 존재하는지 검사 할 수 없다는 것을 알았습니다. 이는 역할 종속성 (역할 자체)이이를 필요로하는 역할로 확장되어 게임의 일부가되는 방식 때문입니다. my_role/files/my_file.txt
과 required_role/files/my_file.txt
을 구별 할 수있는 작업은 없습니다. 문제 (내가 가장 쉽고 깨끗한 발견 한)에
한 가지 방법은했다 :
my_role
에 변수를 추가예
01,235을 이용하여 태스크를 실행하는 경우 확인 (기본 파일을 사용하는 것과 동일한) 작업을 추가 16,required_role
# Existing task
- name: some task
copy: src=roles_file.txt dest=some/directory/file.txt
when: my_file_path is not defined
# My custom task
- name: my custom task (an alteration of the above task)
copy: src={{ my_file_path }} dest=/some/directory/file.txt
when: my_file_path is defined
my_role
에서 언급 한 바와 같이#... existing code
my_file_path: "path/to/my/file"
라몬 데 라 푸 엔테 :이 솔루션이 작동 zzet.rbenv repo :
로 받아 들여졌다, 그러나 그것은 것 의존하고있는 역할의 작업이 어디에서 파일을 사용하는지 문제가 될 수 있습니다. 귀하의 솔루션은 견고한 솔루션이지만 원래 역할에 가변 경로 이름을 사용할 수 있도록 역할 소유자에게 끌어 오기 요청을 보내는 것이 좋습니다. 그것은 더 유연한 은하의 역할을 그런 식으로 만듭니다. –
아, 그 역할이 지금 이것을 지원합니다. https://github.com/andradei/ansible-rbenv-role/commit/434602710d8dbd047ad70f24cdc950971a0bdafc 멋진 :-) –