imfreedom/teamcity-ansible

4921ec257d96
Parents df70970b8625
Children f3396abfb534
update the teamcity role to work with freebsd as well
--- a/roles/teamcity/tasks/main.yml Sun Nov 10 04:08:45 2019 -0600
+++ b/roles/teamcity/tasks/main.yml Sun Nov 10 04:09:09 2019 -0600
@@ -11,7 +11,7 @@
set_fact:
teamcity_agent_home: "{{teamcity_home}}tc/"
-- name: install dependencies
+- name: install dependencies (Debian)
apt:
name:
- unzip
@@ -19,6 +19,12 @@
force_apt_get: true
when: ansible_facts['os_family'] == "Debian"
+- name: install dependencies (FreeBSD)
+ pkgng:
+ name: unzip,openjdk11
+ state: present
+ when: ansible_system == "FreeBSD"
+
- name: "create group: {{teamcity_group}}"
group:
name: "{{teamcity_group}}"
@@ -79,17 +85,63 @@
owner: "{{teamcity_user}}"
group: "{{teamcity_group}}"
+- name: install init script
+ copy:
+ dest: /usr/local/etc/rc.d/teamcity-agent
+ content: |
+ #!/bin/sh
+
+ # PROVIDE: teamcity-agent
+ # REQUIRE: DAEMON
+
+ . /etc/rc.subr
+
+ name="teamcity_agent"
+ rcvar="teamcity_agent_enable"
+
+ start_cmd=teamcity_agent_start_cmd
+ stop_cmd=teamcity_agent_stop_cmd
+
+ teamcity_agent_user="{{teamcity_user}}"
+ teamcity_agent_group="{{teamcity_group}}"
+
+ teamcity_agent_start_cmd() {
+ checkyesno teamcity_agent_enable && {{teamcity_agent_home}}bin/agent.sh start
+ }
+
+ teamcity_agent_stop_cmd() {
+ checkyesno teamcity_agent_enable && {{teamcity_agent_home}}bin/agent.sh stop
+ }
+
+ PATH="$PATH:/usr/local/bin"
+
+ pidfile="{{teamcity_agent_home}}logs/buildAgent.pid"
+
+ load_rc_config "${name}"
+ run_rc_command "$1"
+ mode: '0555'
+ when: ansible_system == "FreeBSD"
+
+- name: reetart agent (init)
+ service:
+ name: teamcity-agent
+ state: restarted
+ enabled: yes
+ when: ansible_system == "FreeBSD"
+
+
- name: check for systemd unit
stat:
path: /etc/systemd/system/teamcity-agent.service
register: systemd_unit
+ when: ansible_system == "Linux"
-- name: stop agent
+- name: stop agent (systemd)
systemd:
name: teamcity-agent
state: stopped
ignore_errors: yes
- when: systemd_unit.stat.exists
+ when: ansible_system == "Linux" and systemd_unit.stat.exists
- name: install systemd unit
copy:
@@ -116,9 +168,10 @@
WantedBy=multi-user.target
when: ansible_system == "Linux"
-- name: start agent
+- name: start agent (systemd)
systemd:
name: teamcity-agent
state: started
daemon_reload: yes
+ when: ansible_system == "Linux"