commit a167123a1f0389720b5b7c9632050e4a50e27255 Author: transcaffeine Date: Tue Feb 4 17:27:12 2025 +0100 WIP: feat(jenkins): add role to deploy jenkins diff --git a/roles/jenkins/defaults/container.yml b/roles/jenkins/defaults/container.yml new file mode 100644 index 0000000..d86ed8d --- /dev/null +++ b/roles/jenkins/defaults/container.yml @@ -0,0 +1,41 @@ +--- +jenkins_container_name: "jenkins" +jenkins_container_image: >-2 + {{ + [ + jenkins_container_image_repository, + jenkins_container_image_tag + | default(jenkins_version + ( + ((jenkins_container_image_flavour is string) + and (jenkins_container_image_flavour | length > 0)) + | ternary( + '-' + jenkins_container_image_flavour | default('', true), + '' + ) + )) + ] | join(':') + }} +jenkins_container_image_registry: docker.io +jenkins_container_image_namespace: jenkins +jenkins_container_image_name: jenkins +jenkins_container_image_repository: >-2 + {{ + [ + jenkins_container_image_registry | default([], true), + jenkins_container_image_namespace | default([], true), + jenkins_container_image_name + ] | flatten | join('/') + }} +jenkins_container_image_source: "pull" +jenkins_container_image_tag: ~ +jenkins_container_image_flavour: "jdk17" +jenkins_container_env: ~ +jenkins_container_ports: ~ +jenkins_container_networks: ~ +jenkins_container_etc_hosts: ~ +jenkins_container_base_volumes: + - "{{ jenkins_home_path }}:/var/jenkins_home" +jenkins_container_volumes: ~ +jenkins_container_all_volumes: >-2 + {{ jenkins_container_base_volumes | default([], true) + + jenkins_container_volumes | default([], true) }} diff --git a/roles/jenkins/defaults/main.yml b/roles/jenkins/defaults/main.yml new file mode 100644 index 0000000..b43821f --- /dev/null +++ b/roles/jenkins/defaults/main.yml @@ -0,0 +1,9 @@ +--- +jenkins_user: "jenkins" +jenkins_versions: + lts: "2.479.3" + weekly: "2.496" +jenkins_version_channel: "lts" +jenkins_version: "{{ jenkins_versions[jenkins_version_channel] }}" + +jenkins_home_path: "/var/lib/jenkins" diff --git a/roles/jenkins/tasks/main.yml b/roles/jenkins/tasks/main.yml new file mode 100644 index 0000000..91c8321 --- /dev/null +++ b/roles/jenkins/tasks/main.yml @@ -0,0 +1,11 @@ +--- +- name: Ensure jenkins user '{{ jenkins_user }}' is {{ jenkins_state }} + ansible.builtin.user: + name: "{{ jenkins_user }}" + state: "{{ jenkins_state }}" + system: true + register: jenkins_user_info + +- name: Ensure jenkins is deployed using {{ jenkins_deployment_method }} + ansible.builtin.include_tasks: + file: "deploy-{{ jenkins_deployment_method }}.yml" diff --git a/roles/jenkins/vars/main.yml b/roles/jenkins/vars/main.yml new file mode 100644 index 0000000..271ef35 --- /dev/null +++ b/roles/jenkins/vars/main.yml @@ -0,0 +1,9 @@ +--- +jenkins_states: + - absent + - present +jenkins_deployment_methods: + - docker +jenkins_version_channels: + - "lts" + - "weekly"