Skip to content
main.yml 2.01 KiB
Newer Older
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
- name: Install a list of packages
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
  ansible.builtin.apt:
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
    update_cache: yes
    state: present
    pkg:
    - curl
    - openssh-server
    - ca-certificates
    - tzdata
    - perl
    - gnupg
    - apt-transport-https
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
- name: Install Debian archive keyring
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
  ansible.builtin.apt:
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
    update_cache: yes
    state: present
    pkg:
    - debian-archive-keyring
  when: ansible_distribution == 'Debian'

Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
- name: Add an Apt signing key, uses whichever key is at the URL
  ansible.builtin.apt_key:
    url: https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey
    state: present

- name: Add specified repository into sources list
  ansible.builtin.apt_repository:
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
    repo: deb https://packages.gitlab.com/gitlab/gitlab-ce/{{ ansible_distribution | lower }}/ {{ ansible_distribution_release | lower }} main
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
    filename: gitlab_gitlab-ce
    state: present
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
- name: Install gitlab-ce
  ansible.builtin.apt:
    update_cache: yes
    state: present
    pkg:
    - gitlab-ce

Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
- name: Create a directory for config backups
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
  ansible.builtin.file:
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
    path: "/opt/gitlab.rb"
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
    state: directory
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
    owner: root
    group: root
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
    mode: '0755'

- name: Override gitlab config
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
  ansible.builtin.copy:
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
    content: |
      {{ gitlab_config }}
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
    dest: "/etc/gitlab/gitlab.rb"
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
    owner: root
    group: root
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
    mode: '0644'
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
    backup: yes
  register: gitlab_config
  notify: Reconfigure gitlab

- name: Backup previous gitlab config
  ansible.builtin.copy:
     dest: "/opt/gitlab.rb"
     src: "{{ gitlab_config.backup_file }}"
     remote_src: true
  when: gitlab_config.changed
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
- name: Remove backup file from gitlab config dir
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
  ansible.builtin.file:
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
    path: "{{ gitlab_config.backup_file }}"
    state: absent
  when: gitlab_config.changed
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed

- name: Gitlab backup setup
  ansible.builtin.copy:
    content: |
      {{ gitlab_backup_cron }} root backup-gitlab create CRON=1 {{ gitlab_backup_options | default(omit) }}
    dest: "/etc/cron.d/gitlab-backup"
    owner: root
    group: root
    mode: '0644'
  when: gitlab_backup_cron is defined