63 lines
1.4 KiB
YAML

- name: Create directories
file:
path: "{{ item }}"
state: directory
mode: "0755"
loop:
- "{{ jenkins_root }}"
- "{{ jenkins_build_dir }}"
- "{{ jenkins_data_dir }}"
- name: Template plugins list
template:
src: templates/plugins.txt.j2
dest: "{{ jenkins_build_dir }}/plugins.txt"
mode: "0644"
- name: Template Dockerfile
template:
src: templates/Dockerfile.j2
dest: "{{ jenkins_build_dir }}/Dockerfile"
mode: "0644"
- name: Build custom Jenkins image (plugins baked in)
community.docker.docker_image:
name: "{{ jenkins_image_name }}"
build:
path: "{{ jenkins_build_dir }}"
source: build
register: build_img
- name: Template JCasC config
template:
src: templates/jenkins-casc.yaml.j2
dest: "{{ jenkins_data_dir }}/casc.yaml"
mode: "0640"
- name: Ensure ownership for Jenkins data (uid/gid 1000)
file:
path: "{{ jenkins_data_dir }}"
state: directory
owner: "1000"
group: "1000"
recurse: true
- name: Template docker-compose.yaml
template:
src: templates/docker-compose.yaml.j2
dest: "{{ jenkins_root }}/docker-compose.yaml"
mode: "0644"
- name: Up jenkins stack
community.docker.docker_compose_v2:
project_src: "{{ jenkins_root }}"
files: ["docker-compose.yaml"]
state: present
register: dc
- name: Wait for Jenkins HTTP
wait_for:
host: 127.0.0.1
port: "{{ jenkins_http_port }}"
delay: 3
timeout: 180