homelab/roles/jenkins/tasks/main.yml

70 lines
1.6 KiB
YAML
Raw Normal View History

2020-09-16 01:52:08 +00:00
- name: Create Jenkins user
user:
name: "{{ jenkins_user }}"
state: present
shell: /bin/bash
skeleton: /etc/skel
generate_ssh_key: true
- name: Set Jenkins authorized key
authorized_key:
user: jenkins
state: present
exclusive: true
key: "{{ jenkins_sshkey }}"
when: jenkins_sshkey is defined
- name: Give Jenkins user passwordless sudo
template:
src: jenkins_sudoers.j2
dest: /etc/sudoers.d/{{ jenkins_user }}
validate: "visudo -cf %s"
mode: 0440
- name: Install Ansible source
copy:
src: ansible.list
dest: /etc/apt/sources.list.d/ansible.list
- name: Add Ansible source key
apt_key:
keyserver: keyserver.ubuntu.com
id: 93C4A3FD7BB9C367
- name: Install Ansible
apt:
name: ansible
state: present
- name: Install Java
apt:
name: default-jre
state: present
- name: Create Jenkin's directory
file:
path: "{{ jenkins_root }}"
state: directory
owner: "1000"
group: "1000"
- name: Start Jenkins Container
docker_container:
name: "{{ jenkins_name }}"
2020-04-04 00:51:16 +00:00
image: jenkins/jenkins:{{ jenkins_version }}
state: started
restart_policy: always
ports:
- 50000:50000
volumes: "{{ jenkins_root }}:/var/jenkins_home"
networks_cli_compatible: true
networks:
- name: traefik
labels:
traefik.http.routers.jenkins.rule: "Host(`{{ jenkins_domain }}`)"
traefik.http.routers.jenkins.entrypoints: websecure
traefik.http.routers.jenkins.tls.certresolver: letsencrypt
traefik.http.routers.jenkins.middlewares: "securehttps@file"
traefik.docker.network: traefik
traefik.enable: "true"