Files
homelab/roles/fivem/tasks/main.yml
Alex Frantz 1d3ebb0fe0
All checks were successful
Deploy Containers / Prepare (push) Successful in 25s
stop & restart only if service exists
2025-10-16 14:19:49 -04:00

72 lines
1.9 KiB
YAML

---
- name: Create folder structure
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/fivem"
- "{{ data_dir }}/fivem/server"
- "{{ data_dir }}/fivem/server-data"
- name: Check if FiveM has already been downloaded
stat:
path: "{{ data_dir }}/fivem/server/run.sh"
register: fivem_server
- name: Check if FiveM Config directory already exists
stat:
path: "{{ data_dir }}/fivem/server-data/server.cfg"
register: fivem_server_data
- name: Check if FiveM systemd service exists
stat:
path: "/etc/systemd/system/fivem.service"
register: fivem_systemd
- name: Download FiveM Linux Build
get_url:
url: https://runtime.fivem.net/artifacts/fivem/build_proot_linux/master/20944-eaa15781d4695bd97b050d848e34aac3607c6696/fx.tar.xz
dest: "{{ data_dir }}/fivem/server.tar.xz"
mode: 0755
when: not fivem_server.stat.exists
- name: Unpack FiveM Linux Build
unarchive:
src: "{{ data_dir }}/fivem/server.tar.xz"
dest: "{{ data_dir }}/fivem/server"
remote_src: yes
when: not fivem_server.stat.exists
- name: Clone FiveM Server Data
git:
repo: https://github.com/citizenfx/cfx-server-data.git
dest: "{{ data_dir }}/fivem/server-data"
when: not fivem_server_data.stat.exists
- name: Create FiveM server configuration
template:
src: server.cfg.j2
dest: "{{ data_dir }}/fivem/server-data/server.cfg"
when: not fivem_server_data.stat.exists
- name: Stop & remove FiveM systemd service
become: yes
shell: |
systemctl stop fivem.service &&
rm /etc/systemd/system/fivem.service
when: fivem_systemd.stat.exists
- name: Create FiveM systemd service
become: yes
template:
src: fivem.service.j2
dest: "/etc/systemd/system/fivem.service"
- name: Enable FiveM systemd service
become: yes
command: systemctl enable fivem.service
- name: Start FiveM systemd service
become: yes
command: systemctl start fivem.service