В начале пути DevOps на слуху у многих одни и те же инструменты автоматизации, это Ansible, Jenkins, Gitlab CI/CD, Terraform.
Сегодня хочу оставить небольшую заметку о Jenkins и Gitea. Jenkins очень популярен и если ваша деятельность связана с разработкой/сборкой/деплоеем ПО вы обязательно познакомитесь с Jenkins.
Для изучения и локальных экспериментов с пайплайнами, Jenkins можно развернуть в Docker, а что бы посмотреть как он взаимодействует с SCM(Source control management) можно использовать легкий и быстрый Gitea, а для простоты разворачивания это все объединить в один docker-compose.
infrastructure as code everywhere
Для Gitea нужна бд, будем использовать mariadb, а для Jenkins'a не нужно дополнительных сервисов, он самодостаточен.
docker-compose.yml:
version: '2'
services:
gitea:
image: gitea/gitea:latest
environment:
- USER_UID=1000
- USER_GID=1000
- DB_TYPE=mysql
- DB_HOST=db:3306
- DB_NAME=gitea
- DB_USER=gitea
- DB_PASSWD=changeme
volumes:
- ./gitea:/data
ports:
- "3000:3000"
- "33:22"
depends_on:
- db
restart: always
db:
image: mariadb:10
restart: always
environment:
- MYSQL_ROOT_PASSWORD=changeme
- MYSQL_DATABASE=gitea
- MYSQL_USER=gitea
- MYSQL_PASSWORD=changeme
volumes:
- ./db/:/var/lib/mysql
jenkins:
image: jenkins/jenkins:lts
user: root
ports:
- 8080:8080
volumes:
- ./jenkins:/var/jenkins_home
#Если планируете использовать докер агенты
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/local/bin/docker
Создаем в каталоге в котором находится docker-compose.yml три каталога db, gitea, jenkins и запускаем сервисы
mkdir {db,jenkins,gitea}
docker-compose up
Если все поднялось ищем в логах сообщение от Jenkins
jenkins_1 | Jenkins initial setup is required. An admin user has been created and a password generated.
jenkins_1 | Please use the following password to proceed to installation:
jenkins_1 |
jenkins_1 | 72bf3da885df43c2ae1646f3d7e7ba18
jenkins_1 |
jenkins_1 | This may also be found at: /var/jenkins_home/secrets/initialAdminPassword
Переходим на http://localhost:8080 и вводим ключ из лога
72bf3da885df43c2ae1646f3d7e7ba18, на следующем шаге устанавливаем «предложенные»(suggested) плагины.
Регистрируем аккаунт администратора
Поздравляю вы запустили jenkins.
Следующий шаг настроить и запустить Gitea.
1. Открываем http://localhost:3000/
2. Жмем регистрация
И заполняем настройки, если ничего не меняли в docker-compose то выставляем следующее:
-Тип базы данных
MySQL
-Хост
db:3306
-Пользователь
gitea
-Пароль
changeme
-Имя Бд
gitea
-Порт SSH сервера
33
Не забываем добавить учетную запись Администратора(Не может быть admin)
Жмем установить Gitea
Поздравляю вы настроили gitea.
Теперь можно
-создать репозиторий
-добавить туда простенький pipeline
-создать job в Jenkins
-указать созданный репозиторий и pipeline
-Запустить JOB
Но это давайте вы как нибудь сами.
Комментарии ()