- name: "Ensure database is present" become: yes mysql_db: name: "{{ gitea_db_name }}" collation: utf8mb4_unicode_ci encoding: utf8mb4 state: present register: gitea_database_creation - name: import DATA in database in case of creation become: yes mysql_db: name: "{{ gitea_db_name }}" state: import target: "{{gitea_SQl_target_file}}" when: gitea_database_creation.changed == true and gitea_SQl_target_file is defined - name: "Ensure db user is present" become: yes mysql_user: name: "{{ gitea_db_user }}" host: localhost password: "{{ gitea_db_password }}" priv: "{{ gitea_db_name }}.*:ALL" state: present - name: install gitea pacman: state: present # not required. choices: absent;latest;present. Desired state of the package. force: false # not required. When removing package - force remove package, without any checks. When update_cache - force redownload repo databases. name: gitea become: yes - name: "Configure gitea" template: src: app.ini.j2 dest: /etc/gitea/app.ini owner: "{{ gitea_user }}" mode: 0600 notify: "Restart gitea" become: yes - name: create custom systemd folder file: path: /etc/systemd/system/gitea.service.d/ # required. Path to the file being managed. state: directory # not required. choices: absent;directory;file;hard;link;touch. If C(directory), all intermediate subdirectories will be created if they do not exist. Since Ansible 1.7 they will be created with the supplied permissions. If C(file), the file will NOT be created if it does not exist; see the C(touch) value or the M(copy) or M(template) module if you want that behavior. If C(link), the symbolic link will be created or changed. Use C(hard) for hardlinks. If C(absent), directories will be recursively deleted, and files or symlinks will be unlinked. Note that C(absent) will not cause C(file) to fail if the C(path) does not exist as the state did not change. If C(touch) (new in 1.4), an empty file will be created if the C(path) does not exist, while an existing file or directory will receive updated file access and modification times (similar to the way `touch` works from the command line). become: yes - name: apply override file for systemd template: dest: /etc/systemd/system/gitea.service.d/override.conf # required. Location to render the template to on the remote machine. src: override.j2 # required. Path of a Jinja2 formatted template on the Ansible controller. This can be a relative or absolute path. notify: "Restart gitea" become: yes - name: "Service gitea" service: name: gitea state: started enabled: true when: ansible_service_mgr == "systemd" become: yes - name: Install fail2ban jail template: src: fail2ban/gitea.local.j2 dest: /etc/fail2ban/jail.d/gitea.local owner: root group: root mode: 0644 notify: Restart fail2ban become: yes