#!/usr/bin/ansible-playbook # vim:ft=ansible: --- - name: Set up Gitea block: - name: Set up MySQL block: - name: Create DB mysql_db: name: gitea login_user: root login_password: "{{ mysql_root_password }}" state: present - name: Create user mysql_user: name: gitea host: localhost password: "{{ gitea_mysql_password }}" priv: "gitea.*:ALL,GRANT" login_user: root login_password: "{{ mysql_root_password }}" - name: Set up Apache block: - name: Template out vhost template: src: "apache2-vhost-ssl.conf" dest: "/etc/apache2/sites-available/{{ gitea_url }}.conf" - name: Enable site command: cmd: "a2ensite {{ gitea_url }}.conf" creates: "/etc/apache2/sites-enabled/{{ gitea_url }}.conf" notify: restart apache - name: Generate certificate include_role: name: https vars: website_url: "{{ gitea_url }}" - name: Install git apt: name: git - name: Install Gitea get_url: url: "https://dl.gitea.io/gitea/1.11.4/gitea-1.11.4-linux-amd64" dest: "/usr/local/bin/gitea" mode: "0755" - name: Create Gitea user user: name: git password: "!" home: "/home/git" shell: "/usr/sbin/nologin" - name: Create directory structure file: state: directory owner: git group: git mode: "0750" path: "/var/lib/{{ item }}" loop: - "gitea" - "gitea/custom" - "gitea/data" - "gitea/log" - name: Create config directory file: state: directory recurse: yes mode: "0750" owner: "root" group: "git" path: "/etc/gitea" - name: Check for config stat: path="/etc/gitea/app.ini" register: p - name: Deploy config block: - name: Generate INTERNAL_TOKEN" command: /usr/local/bin/gitea generate secret INTERNAL_TOKEN register: gitea_internal_token - name: Generate SECRET_KEY" command: /usr/local/bin/gitea generate secret SECRET_KEY register: gitea_secret_key - name: Template out app.ini template: src: "app.ini" dest: "/etc/gitea/app.ini" mode: "0640" owner: "root" group: "git" - name: Create default user command: argv: - /usr/local/bin/gitea - admin - create-user - --username - "{{ gitea_admin_username }}" - --password - "{{ gitea_admin_password }}" - --email - "{{ gitea_admin_email }}" - --config - /etc/gitea/app.ini when: not p.stat.exists - name: Template out service template: src: "gitea.service" dest: "/etc/systemd/system/gitea.service" - name: Start and enable service service: name: "gitea.service" enabled: yes state: "started" become: yes