From 5ae6f97c69bb6724e7c5f9175119a9fc349b1d3f Mon Sep 17 00:00:00 2001
From: alexey <a@bayrepo.ru>
Date: Mon, 24 Mar 2025 23:37:21 +0300
Subject: [PATCH] Added install script

---
 install/mock-gui-install.yml | 131 +++++++++++++++++++++++++++++++++++
 install/requirements.yml     |   3 +
 2 files changed, 134 insertions(+)
 create mode 100644 install/mock-gui-install.yml
 create mode 100644 install/requirements.yml

diff --git a/install/mock-gui-install.yml b/install/mock-gui-install.yml
new file mode 100644
index 0000000..7866847
--- /dev/null
+++ b/install/mock-gui-install.yml
@@ -0,0 +1,131 @@
+- name: Install MockGUI
+  hosts: localhost
+  connection: local
+  become: True
+  become_user: root
+  become_method: su
+  tasks:
+    - name: Disable SELinux
+      ansible.posix.selinux:
+        state: disabled
+    
+    - name: Stop and disable firewalld
+      ansible.builtin.service:
+        name: firewalld
+        state: stopped
+        enabled: false
+
+    - name: Stop and disable nftables
+      ansible.builtin.service:
+        name: nftables
+        state: stopped
+        enabled: false
+
+    - name: Add mockgui user
+      ansible.builtin.user:
+        name: mockgui
+        create_home: yes
+        home: /home/mockgui
+      
+    - name: Add mockgui repo file
+      ansible.builtin.copy:
+        dest: "/etc/yum.repos.d/brepo_projects.repo"
+        content: |
+          [brepo_projects]
+          name=msvsphere9 repo on repo.brepo.ru
+          baseurl=https://repo.brepo.ru/hestia/
+          enabled=1
+          gpgkey=https://repo.brepo.ru/hestia/brepo_projects-gpg-key
+          gpgcheck=1
+    
+    - name: Install epel repository
+      ansible.builtin.dnf:
+        name: epel-release
+        state: present
+    
+    - name: Install other needed packages
+      ansible.builtin.dnf:
+        name:
+          - mock 
+          - rpmdevtools 
+          - rpm-build 
+          - ccache 
+          - rpm-sign 
+          - sqlite 
+          - sqlite-devel 
+          - alt-brepo-ruby33 
+          - openssh-server 
+          - git 
+          - tar 
+          - gcc 
+          - gcc-c++ 
+          - make 
+          - cmake 
+          - alt-brepo-ruby33-devel 
+          - openssl-devel 
+          - zlib-devel
+        state: present
+    
+    - name: Add mockgui to mock
+      ansible.builtin.user:
+        name: mockgui
+        groups: mock
+        append: yes
+
+    - name: Delete previously cloned project
+      ansible.builtin.file:
+        path: "/home/mockgui/mock-gui"
+        state: absent
+
+    - name: Clone project to the mockgui
+      ansible.builtin.git:
+        repo: https://dev.brepo.ru/brepo/mock-gui.git
+        dest: /home/mockgui/mock-gui
+        single_branch: yes
+        version: master
+
+    - name: Add ccache to PATH
+      ansible.builtin.lineinfile:
+        path: /home/mockgui/.bashrc
+        insertbefore: '^export PATH'
+        line: 'export PATH=/usr/lib64/ccache:$PATH'
+    
+    - name: Change sources owner
+      ansible.builtin.file:
+        path: /home/mockgui/mock-gui
+        state: directory
+        recurse: yes
+        owner: mockgui
+        group: mockgui
+
+    - name: Install needed ruby gems
+      ansible.builtin.command: /opt/brepo/ruby33/bin/bundle install
+      become: yes
+      become_user: mockgui
+      become_method: su
+      args:
+        chdir: /home/mockgui/mock-gui
+      register: myout
+      changed_when: myout.rc == 0
+      failed_when: myout.rc != 0
+
+
+    - name: Create database
+      ansible.builtin.command: /opt/brepo/ruby33/bin/bundle exec sequel -m db/migrations sqlite://db/workbase.sqlite3
+      become: yes
+      become_user: mockgui
+      become_method: su
+      args:
+        chdir: /home/mockgui/mock-gui
+      register: myout
+      changed_when: myout.rc == 0
+      failed_when: myout.rc != 0
+
+    
+    - name: Copy systemd service file to server
+      ansible.builtin.copy:
+        src: /home/mockgui/mock-gui/mockgui.service
+        dest: /etc/systemd/system
+        owner: root
+        group: root
+        mode: 0644
diff --git a/install/requirements.yml b/install/requirements.yml
new file mode 100644
index 0000000..a5b247c
--- /dev/null
+++ b/install/requirements.yml
@@ -0,0 +1,3 @@
+---
+collections:
+- ansible.posix
\ No newline at end of file