Записки молодого девопсера – Telegram
Записки молодого девопсера
153 subscribers
94 photos
7 files
623 links
Здесь выкладываются различные команды и решения проблем, с которыми приходится сталкиваться, а также интересные статьи и видео из мира IT.
Download Telegram
Полезности из мира Gitlab
https://docs.gitlab.com/ce/ci/yaml/#onlychanges-and-exceptchanges
Параметр onlychanges позволяет запускать CI/CD процессы только в случаях, когда изменились конкретные файлы, либо группа файлов.
Простой пример работы этого параметра:
changes_feature_test:
noscript:
- ping -c4 8.8.8.8
- ./test.sh
only:
changes:
- test.sh
tags:
- changes_test
Здесь процессы CI/CD начинают запускаться только после изменения содержимого shell-скрипта test.sh
(Внимание! Изменение прав файла, например на 755, чтобы сделать его исполняемым, тоже считается изменением. Правда гитлаб в коммите показывает следующую запись:
File mode changed from 100644 to 100755)
Ansible-playbook для установки утилиты bat на RHEL-based дистрибутивы. Пакеты с данной утилитой пока никто не собирает, но на github есть готовые бинарники
- name: get bat latest version
block:
- shell: curl --silent "https://api.github.com/repos/sharkdp/bat/releases/latest" | grep -Po '"tag_name"':' "\K.*?(?=")' warn=false
register: latest_release
- get_url:
url: https://github.com/sharkdp/bat/releases/download/{{latest_release.stdout}}/bat-{{latest_release.stdout}}-x86_64-unknown-linux-musl.tar.gz
dest: /tmp
- unarchive:
src: bat-{{latest_release.stdout}}-x86_64-unknown-linux-musl.tar.gz
dest: /tmp
- copy:
src: /tmp/bat-{{latest_release.stdout}}-x86_64-unknown-linux-musl/
dest: /usr/local/bat/
mode: preserve
- lineinfile:
path: ~/.bashrc
line: "alias bat='/usr/local/bat/bat'"
insertafter: 'mv'
- find:
paths: /tmp
file_type: any
patterns: bat*
register: bat_files_delete
- file:
path: "{{ item.path }}"
state: absent
with_items: "{{ bat_files_delete.files }}"

UPDATE
Если вы используете Fedora, то у вас есть пакет bat в официальных репозиториях. Установить его можно командой
dnf install bat
📚 Hacking for the Holidays by No Starch Press.

Очередной книжный бандл доступен по вкусной цене. На этот раз по большей части для тех, кто увлекается вопросами секурити. 😉

https://www.humblebundle.com/books/hacking-for-the-holidays-books

#security #книга
Забавное поведение RPM.
На прошлой неделе не стал разбираться почему команда
rpm -qa *gitlab*
Ничего не возвращает на сервере с установленным гитлабом.
Сегодня добрался и выяснилось, что команда
rpm -qa | grep gitlab
выдает мне нужный пакет. И имеется предположение, что первая команда не выполнилась по причине того, что в директории, где я выполнял эту команду лежал файл, подходящий под регулярное выражение. И если перейти в другую директорию, например, /tmp, то все отрабатывает успешно. Гугл пока что ничего не сказал по этому поводу.
UPDATE
Задал этот вопрос в русскоязычном чате сообщества Fedora.
Все было банально - экранируем запрос, чтобы локальные файлы не влияли на выдачу.
Т.е.
rpm -qa "*gitlab*"
или
rpm -qa \*gitlab\*
При восстановление Gitlab из бэкапов можно получить ошибку
GRPC::Unavailable: 14:Connect Failed

Это означает, что сервис gitaly не запущен и проверить в логах, что с ним случилось.
В некоторых случаях сервису не хватает прав для директории /tmp
Awesome Docker resources and projects list
https://awesome-docker.netlify.com
Write down a command-line to see the help text that matches each argument
https://explainshell.com
Очевидно, но не сразу.
На домашнем ноутбуке у меня установлена Fedora Workstation (DE - Cinnamon).
И при поиске в меню по фразе tele почему-то первым совпадением был Skype, а не телеграм.
Оказалось, что сначала приоритет отдается полю Comment в описании приложения и через стандартный редактор не получилось поменять этот коментарий для своей учетной записи. Зато я нашел, где это задается глобально (в данной случае для приложения Skype) в файле /usr/share/applications/skypeforlinux.desktop с помощью утилиты crudini (её нужно установить - dnf install crudini):
1. Получаем значение ключа Comment в секции Desktop Entry
# crudini --get /usr/share/applications/skypeforlinux.desktop "Desktop Entry" "Comment"
Skype Internet Telephony
2. Меняем значение на Skype
# crudini --set /usr/share/applications/skypeforlinux.desktop "Desktop Entry" "Comment" "Skype"
# crudini --get /usr/share/applications/skypeforlinux.desktop "Desktop Entry" "Comment"
Skype
Либо можно поправить ручками в вашем любимом текстовом редакторе
Установка docker в Oracle Linux 7.
1. Установка при наличии сети
Включить репозитории ol7_latest, ol7_uekr и ol7_addons
через yum-config-manager, либо ручками редактированием файла /etc/yum.repos.d/public-yum-ol7.repo
Установка docker и запуск docker-демона выглядит следующим образом:
yum install docker-engine
systemctl start docker && systemctl enable docker
2. Установка при отсутствии сети (или доступа в Интернет)
Для установки необходимо установить 2 пакета (версии пакетов актуальны на 26.12.2018):
yum localinstall container-selinux-2.21-1.el7.noarch.rpm
yum localinstall docker-engine-18.03.1.ol-0.0.9.el7.x86_64.rpm
systemctl start docker && systemctl enable docker
set -e
Функция set -e используется в bash-скриптах и предназначена для выхода из скрипта, если на какой-то из команд получается не нулевой exit-code (код выхода).
Функция set +e меняет поведения на обратное (даже если код не нулевой, то выполнение скрипта не прекращается)
Как выглядит регулярное выражение для валидации e-mail RFC822 (http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html)
Изменение локальной ветки в git и пуш этой ветки в удаленный git-репозиторий
git branch -m new-branch
git push origin :old-branch new-branch
https://blog.github.com/2019-01-07-new-year-new-github/
Самая главная полезность для простых разработчиков:
For the first time, developers can use GitHub for their private projects with up to three collaborators per repository for free
Вывод содержимого файла без комментариев и пустых строк
grep -v '^#\|^$'  some_file
labbuildr allows on demand creation of lab environments on Vmware Workstation / Fusion
labbuildr deploys the folowing scenarios:
Exchange / Exchange DAG 2010,2013,2016
SQL / SQL Always on 2012,2014,2016
Hyper-V
Sharepoint
Standalone VM´s
Mastering ESXi Installs
Automating EMC ScaleIO Installs and any more.
labbuildr can be updated automatically.
labbuildr allows for fully customization of network environment vi a central configuration (labtools)
https://github.com/bottkars/labbuildr
Docker-compose для балансировщика ggr с WebUI от selenoid:
version: '3'
services:
ggr:
image: "aerokube/ggr:1.6.3"
restart: always
network_mode: bridge
ports:
- "4444:4444"
volumes:
- "/etc/grid-router/:/etc/grid-router:ro"
command: ["-quotaDir", "/etc/grid-router/quota", "listen", ":4444"]
ggr-ui:
depends_on:
- ggr
image: "aerokube/ggr-ui:1.1.1"
restart: always
network_mode: bridge
links:
- ggr
ports:
- "8888:8888"
volumes:
- "/etc/grid-router/:/etc/grid-router:ro"
selenoid-ui:
restart: always
image: "aerokube/selenoid-ui:1.6.3"
network_mode: bridge
links:
- ggr-ui
ports:
- "8080:8080"
command: ["--selenoid-uri", "http://ggr-ui:8888"]