From 128999b1eebe37e32bb65446e6002d91c3d50bec Mon Sep 17 00:00:00 2001 From: Mike Conrad Date: Mon, 11 Mar 2024 06:59:01 -0400 Subject: [PATCH] Initial Commit --- install-teamcity-server.yml | 51 +++++++++++++++++++++++++++++++++++ templates/teamcity.service.j2 | 13 +++++++++ 2 files changed, 64 insertions(+) create mode 100644 install-teamcity-server.yml create mode 100644 templates/teamcity.service.j2 diff --git a/install-teamcity-server.yml b/install-teamcity-server.yml new file mode 100644 index 0000000..5dba2b0 --- /dev/null +++ b/install-teamcity-server.yml @@ -0,0 +1,51 @@ +--- +- name: Install Teamcity + hosts: 127.0.0.1 + become: true + become_method: sudo + + vars: + java_version: "17" + teamcity: + installation_path: /opt/TeamCity + version: "2023.11.4" + installation_file: + + tasks: + - name: Install Java + ansible.builtin.apt: + name: openjdk-{{ java_version }}-jdk # This is important because TeamCity will fail to start if we try to use 18 or 19 + update_cache: yes + state: latest + install_recommends: no + + - name: Add TeamCity User + ansible.builtin.user: + name: teamcity + + - name: Download TeamCity Server + ansible.builtin.get_url: + url: https://download.jetbrains.com/teamcity/TeamCity-{{teamcity.version}}.tar.gz + dest: /opt/TeamCity-{{teamcity.version}}.tar.gz + mode: '0770' + + - name: Install TeamCity Server + ansible.builtin.shell: | + tar xfz /opt/TeamCity-{{teamcity.version}}.tar.gz + rm -rf /opt/TeamCity-{{teamcity.version}}.tar.gz + args: + chdir: /opt + + - name: Update permissions + ansible.builtin.shell: chown -R teamcity:teamcity /opt/TeamCity + + - name: TeamCity | Create environment file + template: src=teamcity.service.j2 dest=/etc/systemd/system/teamcityserver.service + notify: + - reload systemctl + - name: TeamCity | Start teamcity + service: name=teamcityserver.service state=started enabled=yes + + handlers: + - name: reload systemctl + command: systemctl daemon-reload \ No newline at end of file diff --git a/templates/teamcity.service.j2 b/templates/teamcity.service.j2 new file mode 100644 index 0000000..4bc0b9d --- /dev/null +++ b/templates/teamcity.service.j2 @@ -0,0 +1,13 @@ +[Unit] +Description=JetBrains TeamCity +Requires=network.target +After=syslog.target network.target +[Service] +Type=forking +ExecStart={{teamcity.installation_path}}/bin/runAll.sh start +ExecStop={{teamcity.installation_path}}/bin/runAll.sh stop +User=teamcity +PIDFile={{teamcity.installation_path}}/teamcity.pid +Environment="TEAMCITY_PID_FILE_PATH={{teamcity.installation_path}}/teamcity.pid" +[Install] +WantedBy=multi-user.target \ No newline at end of file