diff --git a/handlers/main.yml b/handlers/main.yml index ae2cbcd16bc869fca8bbde141c105af6e7f951ae..6b5aa5a339313ef55a2a8082eb88601f89da1d88 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -1,5 +1,5 @@ --- - name: restart gitlab - command: gitlab-ctl reconfigure + ansible.builtin.command: gitlab-ctl reconfigure register: gitlab_restart failed_when: 'gitlab_restart.rc != 0' diff --git a/meta/main.yml b/meta/main.yml index e7d06fcd66764cc0436cf53318d43d9fecfe7124..277f5a3d8e6d4cff731c21f9f47e5e60e327f2b8 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -1,3 +1,12 @@ --- -dependencies: - #- elasticsearch +galaxy_info: + author: Fachschaft Informatik, TU Dortmund + description: Install Gitlab + license: MIT + min_ansible_version: "2.9" + platforms: + - name: Ubuntu + versions: + - all +dependencies: [] + # - elasticsearch diff --git a/tasks/main.yml b/tasks/main.yml index 4269ec754fd0a94b8540d02157301d24677f6096..c4d8fa5d0d1571247776fc5f0688ade454b6ff08 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,6 +1,6 @@ --- - name: Create user and db on server - include_role: + ansible.builtin.include_role: name: postgresql_client vars: db_user: @@ -11,38 +11,39 @@ when: gitlab_external_postgres - name: Check if GitLab configuration file already exists. - stat: path=/etc/gitlab/gitlab.rb + ansible.builtin.stat: path=/etc/gitlab/gitlab.rb register: gitlab_config_file - name: Check if GitLab is already installed. - stat: path=/usr/bin/gitlab-ctl + ansible.builtin.stat: path=/usr/bin/gitlab-ctl register: gitlab_file # Install GitLab and its dependencies. - name: Download GitLab repository installation script. - get_url: + ansible.builtin.get_url: url: "{{ gitlab_repository_installation_script_url }}" dest: /tmp/gitlab_install_repository.sh validate_certs: "{{ gitlab_download_validate_certs }}" + mode: 0700 when: not gitlab_file.stat.exists - name: Install GitLab repository - command: bash /tmp/gitlab_install_repository.sh + ansible.builtin.command: bash /tmp/gitlab_install_repository.sh when: not gitlab_file.stat.exists - name: Add GitLab apt signing key - apt_key: + ansible.builtin.apt_key: id: F6403F6544A38863DAA0B6E03F01618A51312F3F url: https://packages.gitlab.com/gpg.key state: present - name: Define the Gitlab package name. - set_fact: + ansible.builtin.set_fact: gitlab_package_name: "{{ gitlab_edition }}{{ gitlab_package_version_separator }}{{ gitlab_version }}" when: gitlab_version|length > 0 - name: Install GitLab - package: + ansible.builtin.package: name: "{{ gitlab_package_name | default(gitlab_edition) }}" state: present when: not gitlab_file.stat.exists @@ -50,13 +51,13 @@ # Start and configure GitLab. Sometimes the first run fails, but after that, # restarts fix problems, so ignore failures on this run. - name: Reconfigure GitLab (first run). - command: > + ansible.builtin.command: > gitlab-ctl reconfigure creates=/var/opt/gitlab/bootstrapped failed_when: false - name: Copy GitLab configuration file. - template: + ansible.builtin.template: src: "{{ inventory_hostname }}/gitlab.rb.j2" dest: /etc/gitlab/gitlab.rb owner: root @@ -65,20 +66,21 @@ notify: restart gitlab - name: Copy gitlab-dump service - template: + ansible.builtin.template: src: gitlab_dump.service.j2 dest: /etc/systemd/system/gitlab_dump.service + mode: 0644 when: gitlab_use_borgbackup - name: Enable gitlab-dump service - systemd: + ansible.builtin.systemd: name: "gitlab_dump.service" - enabled: yes - daemon_reload: yes + enabled: true + daemon_reload: true when: gitlab_use_borgbackup - name: Configure backups - include_role: + ansible.builtin.include_role: name: borgbackup_client vars: borgbackup_source_dirs: @@ -92,53 +94,56 @@ - name: Install postgres client binaries block: - - name: PostgreSQL | Make sure the CA certificates are available - apt: - pkg: ca-certificates - state: present - - - name: PostgreSQL | Add PostgreSQL repository apt-key - apt_key: - id: "{{ postgresql_apt_key_id }}" - url: "{{ postgresql_apt_key_url }}" - state: present - - - name: PostgreSQL | Add PostgreSQL repository - apt_repository: - repo: "{{ postgresql_apt_repository }}" - state: present - - - name: PostgreSQL | Add PostgreSQL repository preferences - template: - src: etc_apt_preferences.d_apt_postgresql_org_pub_repos_apt.pref.j2 - dest: /etc/apt/preferences.d/apt_postgresql_org_pub_repos_apt.pref - - - name: PostgreSQL | Install PostgreSQL client tools - apt: - name: - - "postgresql-client-{{ postgresql_version }}" - state: present - update_cache: yes - default_release: "{{ postgresql_default_release | default(ansible_distribution_release + '-pgdg') }}" - - - name: Create links in /opt/gitlab/bin/ - file: - src: '/usr/bin/{{ item }}' - dest: '/opt/gitlab/bin/{{ item }}' - state: link - with_items: - - pg_dump - - psql - when: gitlab_external_postgres + - name: PostgreSQL | Make sure the CA certificates are available + ansible.builtin.apt: + pkg: ca-certificates + state: present + + - name: PostgreSQL | Add PostgreSQL repository apt-key + ansible.builtin.apt_key: + id: "{{ postgresql_apt_key_id }}" + url: "{{ postgresql_apt_key_url }}" + state: present + + - name: PostgreSQL | Add PostgreSQL repository + ansible.builtin.apt_repository: + repo: "{{ postgresql_apt_repository }}" + state: present + + - name: PostgreSQL | Add PostgreSQL repository preferences + ansible.builtin.template: + src: etc_apt_preferences.d_apt_postgresql_org_pub_repos_apt.pref.j2 + dest: /etc/apt/preferences.d/apt_postgresql_org_pub_repos_apt.pref + mode: 0644 + + - name: PostgreSQL | Install PostgreSQL client tools + ansible.builtin.apt: + name: + - "postgresql-client-{{ postgresql_version }}" + state: present + update_cache: true + default_release: "{{ postgresql_default_release | default(ansible_distribution_release + '-pgdg') }}" + + - name: Create links in /opt/gitlab/bin/ + ansible.builtin.file: + src: '/usr/bin/{{ item }}' + dest: '/opt/gitlab/bin/{{ item }}' + state: link + mode: 0777 + with_items: + - pg_dump + - psql + when: gitlab_external_postgres - name: Copy registry cleanup service - copy: + ansible.builtin.copy: src: "{{ item }}" dest: "/etc/systemd/system/" + mode: 0644 with_fileglob: "gitlab_registry_cleanup.*" - name: Enable registry cleanup timer - systemd: + ansible.builtin.systemd: name: gitlab_registry_cleanup.timer enabled: true state: started diff --git a/tasks/plantuml.yml b/tasks/plantuml.yml index fba37b77aac6602f05cab01f1a2ce897f2fead99..4c88a2de42c17491999309448f355b1984247b19 100644 --- a/tasks/plantuml.yml +++ b/tasks/plantuml.yml @@ -1,6 +1,6 @@ --- - name: Install prerequisites for docker - apt: + ansible.builtin.apt: name: - apt-transport-https - ca-certificates @@ -8,30 +8,30 @@ - gnupg-agent - software-properties-common state: present - update_cache: yes + update_cache: true - name: Add docker key - apt_key: + ansible.builtin.apt_key: url: https://download.docker.com/linux/ubuntu/gpg state: present - name: Add docker repo - apt_repository: + ansible.builtin.apt_repository: repo: "deb [arch=amd64] https://download.docker.com/linux/ubuntu {{ ansible_lsb.codename }} stable" state: present - name: Install prerequisites for docker - apt: + ansible.builtin.apt: name: - docker-ce - docker-ce-cli - containerd.io - python3-docker state: present - update_cache: yes + update_cache: true - name: Start PlantUML docker container - docker_container: + ansible.builtin.docker_container: name: plantuml image: plantuml/plantuml-server:tomcat state: started