Подключение SEMAPHORE к GitLab

Для начала создадим проект в GitLab, в котором будем хранить playbooks.

Создадим и загрузим простенький плейбук.

Клонируем пока что пустой репозиторий себе на комп:

git clone https://git.korep.ru/test_user/test_project.git
cd test_project
git switch --create main
new-item test.yaml
git add test.yaml
git commit -m "test.yaml"
git push --set-upstream origin main

После этого у нас в репозитории появится файлик. На локальном ПК откроем его и впишем простенький плейбук:

- name: Update and upgrade servers
  hosts: all
  become: yes
  tasks:
    - name: Update package cache
      apt:
        update_cache: yes

    - name: Upgrade packages
      apt:
        upgrade: dist

    - name: Remove unused packages
      apt:
        autoremove: yes
        purge: yes

После этого опять закоммитим и запушим:

git add test.yaml
git commit -m "fix test.yaml"
git push --set-upstream origin main

Готово! У нас есть готовый репозиторий и плейбук. Теперь нам надо настроить персональный токен доступа (PAT). Переходим в свой профиль gitlab и идем в Профиль — Edit profile — Access — Personal access tokens — add new token.

Обязательно выбираем как минимум чтение, а так же устанавливаем срок и имя токена

После генерации токена, необходимо скопировать его. Он покажется только один раз!

С gitlab закончили. Переходим в Semaphore…

Первым делом нам необходимо добавить только что созданный токен. Переходим Key store — New key — Create

Далее необходимо подключить наш репозиторий. Repositories — new repository

Далее идем в задачи и создаем нашу задачу. Собственно указываем имя нашего плейбука, выбираем репозиторий, инвентори и т.д. (настройки задач это уже другая история…)

Жмем Run и наслаждаемся выполнением данной задачи.

В Git у нас хранится код, и мы знаем кто и что менял если идет командная работа. А semaphore выступает в роли раннера. Может кому-то понадобится…