Записки молодого девопсера – Telegram
Записки молодого девопсера
153 subscribers
94 photos
7 files
623 links
Здесь выкладываются различные команды и решения проблем, с которыми приходится сталкиваться, а также интересные статьи и видео из мира IT.
Download Telegram
Вы можете запретить утилите cloud-init изменять настройки сети при каждой перезагрузке сервера. Для этого в установленной системе добавьте файл /etc/cloud/cloud.cfg.d/99_disable_network_config.cfg:
network:
config: disabled
Forwarded from opennet.ru
Релиз системы виртуализации VirtualBox 6.0

После года разработки компания Oracle опубликовала релиз системы виртуализации VirtualBox 6.0. Готовые установочные пакеты доступны для Linux (Ubuntu, Fedora, openSUSE, Debian, SLES, RHEL), Solaris, macOS и Windows.

http://www.opennet.ru/opennews/art.shtml?num=49809
Разница между yum update и yum upgrade:
yum update - обновляет список установленных пакетов (если не указаны, то обновляет все имеющиеся в системе).
yum upgade - производит обновление пакетов, а также удаляет устаревшие пакеты (obsoletes packages).
В связи с этим, надо понимать, что в некоторых случаях yum upgrade может удалить пакеты, которые вы используете.
Из документации Ansible было непонятно, какую политику обновления использует модуль yum.
В исходном коде встретилась такая вот строчка:
- When using state=latest, this can be C('*') which means run C(yum -y update).
После запуска плейбука с обновлением всех пакетов было замечено, что вызываются 2 команды:
/usr/bin/yum -d 2 -y check-update
/usr/bin/yum -d 2 -y update
Где первая команда (с аргументом check-update) запрашивает список обновленных пакетов (если они есть, то возвращается код выхода 100, если таких пакетов нет - 0, если во время запроса списка пакетов произошла ошибка - код 1).
-d 2 - устанавливает значение debug-level в значение 2
Последняя команда выполняет обновление всех пакетов без удаления obsoletes-packages
UPDATE
По ходу поисков на просторах интернета выяснилось, что люди, которые использовали ранее Debian-like дистрибутивы переносят весь свой опыт в мир RHEL-like дистрибутивов. А затем в инструкциях встречаются вот такие конструкции:
yum update && yum update
Как видно - совершенно бессмысленные. В мире Debian-like дистрибутивах это выглядит вот так:
apt update && apt upgrade
Что вполне логично, так как
apt update получает информацию о пакетах из репозиториев, описанных в файле /etc/apt/sources.list (встречаются и отдельные файлы, которые размещают в директории /etc/apt/sources.list.d/
apt upgrade
устанавливает все доступные обновления, полученные после запуска команды выше.
P.S. Да, можно использовать apt вместо apt-get
Полезности из мира 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