90 lines
2.0 KiB
YAML
90 lines
2.0 KiB
YAML
---
|
|
- name: Ensure python is installed
|
|
ansible.builtin.dnf:
|
|
name:
|
|
- python39
|
|
- python39-pip
|
|
state: present
|
|
|
|
- name: Ensure noggin user exists
|
|
user:
|
|
name: noggin
|
|
comment: "Noggin FAS"
|
|
|
|
- name: Create noggin directory
|
|
ansible.builtin.file:
|
|
path: /opt/noggin
|
|
state: directory
|
|
mode: '0700'
|
|
owner: noggin
|
|
group: noggin
|
|
|
|
- name: Deploy noggin
|
|
git:
|
|
repo: https://github.com/fedora-infra/noggin.git
|
|
dest: /opt/noggin/noggin
|
|
update: true
|
|
version: main
|
|
become: true
|
|
become_user: noggin
|
|
|
|
- name: Noggin user must install poetry
|
|
pip:
|
|
name: poetry
|
|
executable: pip3.9
|
|
become: true
|
|
become_user: noggin
|
|
|
|
- name: Remove any pycache
|
|
ansible.builtin.file:
|
|
path: "/home/noggin/.cache/pypoetry"
|
|
state: absent
|
|
|
|
- name: Noggin installation
|
|
command: "/home/noggin/.local/bin/poetry install --no-dev --extras deploy"
|
|
become: true
|
|
become_user: noggin
|
|
changed_when: "1 != 1"
|
|
args:
|
|
chdir: "/opt/noggin/noggin"
|
|
|
|
- name: Get the noggin poetry virtualenv
|
|
shell:
|
|
cmd: "poetry env list | awk '{print $1}'"
|
|
chdir: "/opt/noggin/noggin"
|
|
become: true
|
|
become_user: noggin
|
|
changed_when: "1 != 1"
|
|
register: virtualenv_location
|
|
|
|
- name: Deploy start up script
|
|
ansible.builtin.template:
|
|
src: "opt/noggin/start_noggin.sh.j2"
|
|
dest: "/opt/noggin/start_noggin.sh"
|
|
mode: '0750'
|
|
user: noggin
|
|
group: noggin
|
|
|
|
- name: Deploy systemd unit
|
|
ansible.builtin.copy:
|
|
src: "etc/systemd/system/noggin.service"
|
|
dest: "/etc/systemd/system/noggin.service"
|
|
owner: root
|
|
group: root
|
|
mode: '0644'
|
|
|
|
- name: Deploy noggin configuration
|
|
ansible.builtin.template:
|
|
src: "opt/noggin/noggin.cfg.j2"
|
|
dest: "/opt/noggin/noggin.cfg"
|
|
owner: noggin
|
|
group: noggin
|
|
mode: '0600'
|
|
|
|
# The only way to run it properly, at least on EL8, is we need this line
|
|
- name: Add missing create_app call
|
|
ansible.builtin.lineinfile:
|
|
path: "/opt/noggin/noggin/noggin/app.py"
|
|
line: "app = create_app()"
|
|
...
|