ansible jenkins 레시피를 추가할 때 가장 애먹은 부분이 proxy 부분이었다. 


tasks/main.xml 파일 

- name: Install jenkins plugins.
jenkins_plugin:
owner: "{{default_user}}"
group: "{{default_group}}"
jenkins_home: "{{ jenkins_home }}"
name: "{{ item.key }}"
version: "{{ item.value.version }}"
state: latest
timeout: 10
environment:
no_proxy: "localhost"
http_proxy: "{{proxy_env.http_proxy}}"
https_proxy: "{{proxy_env.http_proxy}}"
with_dict: "{{ plugins }}"

가장 주의할 점은 바로 no_proxy:localhost이다.



vars/main.xml 파일

---
plugins:
git:
version: 3.9.1
ace-editor:
version: 1.1
scm-sync-configuration:
version: 0.0.10
workflow-job:
version: 2.24

새로 설치할 때는 형상 관리 차원에서 이 방식 또는 jenkins docker 방식을 사용하는 것이 좋다.


그러나..

기존 (legacy) 젠킨스에 playbook이 없어서 동일하게  플러그인 이름과 버전을 맞춰놔도 플러그인 간의 dependecy가 깨지는 경우가 많다. 

따라서 플러그인 설치는 따로 playbook을 설치하기보다는 기존 plugins 파일 들을 압축 저장해서 장애에 대비하는 것이 좋다. 시간을 엄청 빨리 아낄 수 있다. 따로 ftp 서버에 올려두고 재설치 레시피(플레이북)에서 사용하도록 한다.

Posted by '김용환'
,