Split Jenkins into agent and server tasks
This commit is contained in:
parent
13d1d960b7
commit
e5ba0ac610
@ -17,4 +17,5 @@
|
||||
become: true
|
||||
roles:
|
||||
- base
|
||||
- jenkins
|
||||
- libvirt
|
||||
|
46
roles/jenkins/tasks/agent.yml
Normal file
46
roles/jenkins/tasks/agent.yml
Normal file
@ -0,0 +1,46 @@
|
||||
- name: Install GnuPG
|
||||
apt:
|
||||
name: gnupg
|
||||
state: present
|
||||
|
||||
- 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 }}"
|
||||
|
||||
- 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
|
@ -1,69 +1,5 @@
|
||||
- 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 }}"
|
||||
- import_tasks: agent.yml
|
||||
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 }}"
|
||||
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"
|
||||
- import_tasks: server.yml
|
||||
when: jenkins_domain is defined
|
||||
|
26
roles/jenkins/tasks/server.yml
Normal file
26
roles/jenkins/tasks/server.yml
Normal file
@ -0,0 +1,26 @@
|
||||
- name: Create Jenkin's directory
|
||||
file:
|
||||
path: "{{ jenkins_root }}"
|
||||
state: directory
|
||||
owner: "1000"
|
||||
group: "1000"
|
||||
|
||||
- name: Start Jenkins Container
|
||||
docker_container:
|
||||
name: "{{ jenkins_name }}"
|
||||
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"
|
Loading…
Reference in New Issue
Block a user