Для начала создадим проект в 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 выступает в роли раннера. Может кому-то понадобится…
