Skip to content
main.yml 1.95 KiB
Newer Older
- name: Set filename from current date & time
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
  set_fact:
    config_date_time: "{{ ansible_date_time.date }}_{{ ansible_date_time.hour }}-{{ ansible_date_time.minute }}-{{ ansible_date_time.second }}"
Дмитрий Сафронов'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'

Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
- name: Populate 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

- debug: var=gitlab_config.backup_file

- 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