Skip to content
main.yml 3.12 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: Create a directory for trusted-certs
#   file:
#     path: "/etc/gitlab/trusted-certs"
#     state: directory
#     mode: '0755'
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
# - name: Install and configure external ssl
#   block:
#     - name: Create a directory for ssl
#       file:
#         path: "/etc/gitlab/ssl"
#         state: directory
#         mode: '0755'
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
#     - name: Create a symbolic link to /opt/ssl/fullchain.pem
#       file:
#         src: /opt/ssl/fullchain.pem
#         dest: "/etc/gitlab/ssl/{{ item }}.crt"
#         owner: root
#         group: root
#         state: link
#       loop: "{{ gitlab_hostnames }}"
#       notify: Reconfigure gitlab
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
#     - name: Create a symbolic link to /opt/ssl/privkey.pem
#       file:
#         src: /opt/ssl/privkey.pem
#         dest: "/etc/gitlab/ssl/{{ item }}.key"
#         owner: root
#         group: root
#         state: link
#       loop: "{{ gitlab_hostnames }}"
#       notify: Reconfigure gitlab
#   when: gitlab_custom_ssl|default(False) == False
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
- name: Create a directory for external configs
Дмитрий Сафронов'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: Template a file to /opt/gitlab.rb/_version_
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
  ansible.builtin.copy:
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
    content: |
      {{ gitlab_config }}
    dest: "/opt/gitlab.rb/{{ config_date_time }}"
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
    owner: root
    group: root
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
    mode: '0644'

- name: Create a directory for gitlab configs
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
  ansible.builtin.file:
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
    path: "/etc/gitlab"
    state: directory
    owner: root
    group: root
    mode: '0755'
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
- name: Create a hard link to /opt/gitlab.rb/_version_
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
  ansible.builtin.file:
    src: "/opt/gitlab.rb/{{ config_date_time }}"
    dest: /etc/gitlab/gitlab.rb
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
    owner: root
    group: root
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
    mode: '0644'
    state: hard
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
    force: yes
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed
  notify: Reconfigure gitlab
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed

- name: Install gitlab-ce
  ansible.builtin.apt:
    update_cache: yes
    state: present
    pkg:
    - gitlab-ce
  notify: Reconfigure gitlab
Дмитрий Сафронов's avatar
Дмитрий Сафронов committed

- name: Enable & start service gitlab-ce
  ansible.builtin.systemd:
    state: started
    enabled: yes
    masked: no
    daemon_reload: yes
    name: gitlab-runsvdir