Архив рубрики: DevOps

Частые команды git

Копируём файлы из удалённого репозитория
git clone https://github.com/some_user/my.git
После выполнения у вас появится папка ./my
Если нужен не дефолтный бранч
git clone —branch (или -b) branch_name https://github.com/some_user/my.git

Скачать обновления с сервера в уже скачанную папку
cd ./my && git pull

После наших изменений, отправить их на сервер.
git add . # точка означает все файлы, можно указать определённые файлы
git commit -m «Описание ваших изменений»
git push # Отправка изменений на сервер

Удалить файл(ы)
git rm text.txt
git commit -m «Описание ваших изменений»
git push # Отправка изменений на сервер

Отмена последнего коммита
git revert HEAD # HEAD~3 — вернуть состояние на 4 дейстия назад

Удаления коммитов(внесенных изменений на сервер)
git pull # Скачиваем самую свежую версию
git reset —hard 6a844d3d489 # Имя коммита
git push origin +master # +master — имя бранча

Удаление тега
git tag -d имя_тега
git push origin :refs/tags/имя_тега

Соединить одну ветку с другой
git checkout имя_ветки_куда_записываем
git merge имя_ветки_из_который_пишем

Создание нового бранча
git checkout -b New_branch
Отправить наш новый бранч на сервер
git push —set-upstream origin New_branch

Показать существующие бранчи
git branch -a

Удалить бранч
git branch -D branch_name

Настройка Jenkins с LDAP авторизацией и ограничением прав.

Небольшой пример для настройки Jenkins вместе с LDAP каталогом IPA.

Описывать установку Дженкинса не имеет смысла, по этому перейдём ближе к делу.
Для нашей авторазиции необходимо установить плагин под названием LDAP.
После этого переходим в Manage Jenkins -> Configure Global Security.
Выставляем галку Enable Security и в Access Control выбираем LDAP.

Настройки LDAP:
Сервер ldap://it.my-company.com/
Корневой DN dc=it,dc=my-company,dc=com
База поиска пользователей cn=users #не нужно ставить полный путь до вашего CN или OU !!!
Фильтр поиска пользователей uid={0}

Дальше остаётся только задать настройки пользователя, для входа и поиска в LDAP:
Администратор DN uid=user-name,cn=users,cn=accounts,dc=it,dc=my-company,dc=com
Пароль администратора ********

После этого можно пробовать заходить под пользователем из LDAP, но для теста лучше поставить в настройках авторизации, доступ всем на всё (Authorization -> Anyone can do anything).

Для ограничения и выдачи прав пользователям необходим плагин Matrix-based Security Authorization, у которого зависимость от плагина icon-shim.
Снова переходим в Manage Jenkins -> Configure Global Security
Выбираем Authorization -> matrix-based security
Добавляем наших пользователей , в таблице выставляем им права.
Готово, в итоге мы получили Дженкинс с LDAP авторизацией.

Мои шпаргалки по Docker

В связи с тем что часто забываю команды докера, решил сделать запись с наиболее часто используемыми.

Сборка образа из файла Dockerfile (файл опциями сборки образа), учитывая что мы находимся в папке где лежит этот файл.
#$ docker build -t my_docker .
Через ключ -t назначаем имя нашему образу
Точка в конце означает что Dockerfile лежит в текущей директории.

Просмотреть существующие на нашем хосте образы докера
#$ docker images

Просмотреть существующие на нашем хосте контейнеры докера
#$ docker ps -a
-a — по умолчанию показывает только включённые, вместе с ключом выводит все контейнеры.

#$ docker rm — Удалить контейнер
#$ docker rmi — Удалить образ, с ключом —force удалит контейнер и образ
#$ docker rm $(docker ps -a -q) — Удалить все существующие контейнеры
#$ sudo docker save -o linux-nginx.img linux-nginx — Экспортировать образ docker
#$ sudo docker load -i linux-nginx.img — Импортировать образ docker

Запустить контейнер и открыть в нём bash
#$ docker run -it -d --name my_container 397bd34237 /bin/bash
run — команда запуска контейнера
-it — перейти в контейнер и запустить внутри контейнера команду
-d запустить контейнер в фоне и вывести его ID
—name — присвоить имя нашему контейнеру
397bd34237 — имя образа
/bin/bash — выполняемая команда в контейнере

Запустить контейнер который мы уже запускали , с предыдущими параметрами
#$ docker start ID-контейнера

Bash скрипт для запуска докер образа

#!/bin/bash
CONFIG=/home/isavel/ELK+KAFKA/for_docker_image/config/
PATTERN=/home/isavel/ELK+KAFKA/for_docker_image/pattern/
LOG=/home/isavel/ELK+KAFKA/for_docker_image/logs

docker run \ # команда запуска
—restart=always -it \ # в случае падения перезапускать контейнер
-p 443:443 -p 80:80 -p 5601:5601 \ # порты из докера на локалхост port_localhost:port_docker_image
-e «TZ=Europe/Moscow» \ # указываем нашему контейнеру timezone
-v $CONFIG:/etc/logstash/conf.d/ \ # прокидываем в контейнер докера директорию с локальной машины
-v $LOG:/var/log/my_log/ \ # прокидываем в контейнер докера директорию с локальной машины
-v $PATTERN:/opt/logstash/patterns/ \ # прокидываем в контейнер докера директории с локальной машины
—name sberteh \ # названием нашего контейнера
5e89f9aa5754 \ # ID запускаемого образа

Копирование внутрь контейнера
docker cp some_files.conf docker_container:/home/docker/

Зайти в уже запущенный контейнер (точнее выполнить команду внутри контейнера)
docker exec -it name_of_container /bin/bash

Выгрузить контейнер в файл и импортировать его на другой хост докера.
docker save -o=file.tar CONTAINER
docker load --input=file.tar

Загрузить докер образ в локального репозитория:
docker tag [name_image] [repo_name]:[port]/[name_image]
docker push [repo_name]:[port]/[name_image]