From da6c0e503ff4154bc0e61f6b545224249ebed8d5 Mon Sep 17 00:00:00 2001 From: Christian Segundo Date: Sat, 17 Jun 2023 20:58:29 +0200 Subject: First commit --- defaults/main.yml | 3 +++ handlers/main.yml | 5 +++++ tasks/buildkite.yml | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++ tasks/docker.yml | 30 ++++++++++++++++++++++++++ tasks/main.yml | 13 +++++++++++ vars/main.yml | 19 ++++++++++++++++ 6 files changed, 132 insertions(+) create mode 100644 defaults/main.yml create mode 100644 handlers/main.yml create mode 100644 tasks/buildkite.yml create mode 100644 tasks/docker.yml create mode 100644 tasks/main.yml create mode 100644 vars/main.yml diff --git a/defaults/main.yml b/defaults/main.yml new file mode 100644 index 0000000..c23fe49 --- /dev/null +++ b/defaults/main.yml @@ -0,0 +1,3 @@ +--- +buildkite_config: [] +buildkite_extra_packages: [] diff --git a/handlers/main.yml b/handlers/main.yml new file mode 100644 index 0000000..4855161 --- /dev/null +++ b/handlers/main.yml @@ -0,0 +1,5 @@ +--- +- name: restart buildkite-agent + systemd: + name: buildkite-agent + state: restarted diff --git a/tasks/buildkite.yml b/tasks/buildkite.yml new file mode 100644 index 0000000..ae0b391 --- /dev/null +++ b/tasks/buildkite.yml @@ -0,0 +1,62 @@ +--- +- name: Add Buildkite GPG apt Key + ansible.builtin.get_url: + url: "https://keys.openpgp.org/vks/v1/by-fingerprint/{{ buildkite_gpg_fingerprint }}" + dest: /etc/apt/trusted.gpg.d/buildkite.asc + +- name: Add Buildkite Repository + apt_repository: + repo: >- + deb + [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/buildkite.asc] + https://apt.buildkite.com/buildkite-agent stable main + filename: buildkite + +- name: Install buildkite-agent + apt: + name: + - buildkite-agent + +- name: Add buildkite-agent default configuration + ansible.builtin.lineinfile: + create: true + path: /etc/buildkite-agent/buildkite-agent.cfg + regexp: "^{{ item.key }}=" + line: | + {{ item.key }}={% if item.quote | default(true) %}"{{ item.value }}"{% else %}{{ item.value }}{% endif %} + owner: "buildkite-agent" + group: "buildkite-agent" + loop: "{{ buildkite_default_config }}" + notify: + - restart buildkite-agent + +- name: Add buildkite-agent user configuration + ansible.builtin.lineinfile: + path: /etc/buildkite-agent/buildkite-agent.cfg + regexp: "^{{ item.key }}=" + line: | + {{ item.key }}={% if item.quote | default(true) %}"{{ item.value }}"{% else %}{{ item.value }}{% endif %} + owner: "buildkite-agent" + group: "buildkite-agent" + loop: "{{ buildkite_config }}" + notify: + - restart buildkite-agent + +- name: Copy environment hook + ansible.builtin.copy: + dest: /etc/buildkite-agent/hooks/environment + owner: "buildkite-agent" + group: "buildkite-agent" + content: | + #!/bin/bash + set -euo pipefail + + {{ buildkite_environment_hook }} + notify: + - restart buildkite-agent + +- name: Ensure buildkite-agent is enabled + systemd: + name: buildkite-agent + state: started + enabled: true diff --git a/tasks/docker.yml b/tasks/docker.yml new file mode 100644 index 0000000..0e4d2a0 --- /dev/null +++ b/tasks/docker.yml @@ -0,0 +1,30 @@ +--- +- name: Add Docker GPG apt Key + ansible.builtin.get_url: + url: https://download.docker.com/linux/debian/gpg + dest: /etc/apt/trusted.gpg.d/docker.asc + +- name: Add Docker Repository + apt_repository: + repo: >- + deb + [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/docker.asc] + https://download.docker.com/linux/debian + {{ ansible_distribution_release }} + stable + filename: docker + +- name: Install docker + apt: + name: + - docker-ce + - docker-ce-cli + - containerd.io + - docker-buildx-plugin + - docker-compose-plugin + +- name: Ensure docker is enabled + systemd: + name: docker + state: started + enabled: true diff --git a/tasks/main.yml b/tasks/main.yml new file mode 100644 index 0000000..484adfc --- /dev/null +++ b/tasks/main.yml @@ -0,0 +1,13 @@ +--- +- name: Install required system packages + apt: + name: "{{ buildkite_packages + buildkite_extra_packages }}" + +- include_tasks: buildkite.yml +- include_tasks: docker.yml + +- name: Add buildkite-agent user to docker group + user: + name: buildkite-agent + groups: [docker] + append: true diff --git a/vars/main.yml b/vars/main.yml new file mode 100644 index 0000000..18c0ea8 --- /dev/null +++ b/vars/main.yml @@ -0,0 +1,19 @@ +--- +buildkite_packages: + - apt-transport-https + - ca-certificates + - curl + - dirmngr + - gnupg + +buildkite_default_config: + - key: name + value: "%hostname-%spawn" + - key: build-path + value: /var/lib/buildkite-agent/builds + - key: hooks-path + value: /etc/buildkite-agent/hooks + - key: plugins-path + value: /etc/buildkite-agent/plugins + +buildkite_gpg_fingerprint: 32A37959C2FA5C3C99EFBC32A79206696452D198 -- cgit v1.2.3