This guide deploys GoCD server and agent from official packages using Ansible.
- name: Deploy GoCD
hosts: gocd
become: true
vars:
gocd_server_host: localhost
gocd_server_port: 8153
tasks:
- name: Install Java and prerequisites on Debian family
ansible.builtin.apt:
update_cache: true
name:
- openjdk-17-jdk
- curl
- apt-transport-https
state: present
when: ansible_os_family == "Debian"
- name: Install Java and prerequisites on RHEL family
ansible.builtin.dnf:
name:
- java-17-openjdk
- curl
state: present
when: ansible_os_family == "RedHat"
- name: Add GoCD repository on Debian family
ansible.builtin.apt_repository:
repo: "deb https://download.gocd.org/releases/latest stable main"
state: present
filename: gocd
when: ansible_os_family == "Debian"
- name: Add GoCD repository on RHEL family
ansible.builtin.yum_repository:
name: gocd
description: GoCD repository
baseurl: https://download.gocd.org/releases/latest/rpm
gpgcheck: false
when: ansible_os_family == "RedHat"
- name: Install GoCD server
ansible.builtin.package:
name: go-server
state: present
- name: Install GoCD agent
ansible.builtin.package:
name: go-agent
state: present
- name: Configure GoCD server host
ansible.builtin.lineinfile:
path: /etc/default/go-server
regexp: '^GO_SERVER_HOST='
line: "GO_SERVER_HOST={{ gocd_server_host }}"
create: true
- name: Enable and start GoCD server
ansible.builtin.systemd:
name: go-server
enabled: true
state: started
- name: Enable and start GoCD agent
ansible.builtin.systemd:
name: go-agent
enabled: true
state: started
ansible-playbook -i inventory.ini gocd-install.yml