Skip to content

Instantly share code, notes, and snippets.

@anutator
anutator / print.css
Created December 5, 2023 00:07 — forked from ScottKillen/print.css
PDF export stylesheet for obsidian
/* Obsidian snippet to style output of pdf exports
*/
@media print {
/* set your preferred fonts here.
*/
:root {
--body-font-family: "Newsreader Text", TimesNewRoman, "Times New Roman", Times, Baskerville, Georgia, serif;
@anutator
anutator / kubernetes-kernel.md
Last active June 20, 2023 06:39
Модули ядра Linux на ноде Kubernetes

Была задача мигрировать три ноды Kubernetes на ip-адреса из сервисной подсети. Эти ноды использовались для работы gitlab-runner и работали на виртуальных машинах (не железных серверах). Последовательность:

  • kubectl cordon имя_ноды
  • на самих нодах systemctl stop kubelet
  • дополнительно на нодах поставила пакет vmware tools: dnf install open-vm-tools
  • установила новый ip: nmcli con mod ens192 ipv4.address адрес/23 ipv4.gateway шлюз (применяется после перезагрузки Linux или перезагрузки сетевого интерфейса)
  • в веб-интерфейсе VMware vcenter перенесла виртуальные машины трех нод в другой кластер и сервисную подсеть
  • перегрузила (обновилось в том числе ядро Linux)
  • вернула в сервис: kubelet уже сам запустился после перезагрузки, осталось только kubectl uncordon имя_ноды
  • дополнительно обновила helm чарт gitlab-runner, чтобы он заодно перерегистрировался в Gitlab с новым ip-адресом.
@anutator
anutator / obsidian.md
Last active January 3, 2023 18:26
Obsidian — база знаний

В Obsidian веду всю документацию (базу знаний).

Синхронизация базы

Все статьи хранятся в формате Markdown в каталоге (проекте), настройки самого Obsidian хранятся в подкаталоге .obsidian. У меня несколько разделов (подкаталогов), каждый из которых хранится в каталоге, картинки хранятся в виде файлов в подкаталогах assets внутри каждого раздела.

У Obsidian есть встроенная возможность синхронизации, но это платный функционал. Поэтому либо архивировать весь свой каталог в zip и переносить вручную между устройствами (для смартфона также есть приложение, но его я бы использовала только для просмотра), либо поставить Rclone — синхронизация локальных папок с облаками (google, dropbox, полный список здесь. Приведу пример настройки для сихронизации через google docs (у кого есть почта на gmail):

# настраиваем хранилище, даем ему имя my
rclone config
@anutator
anutator / ansible.md
Last active January 24, 2023 21:31
Ansible Tips

Отображение результата выполнения команды или скрипта

К сожалению, в реальном времени отображать выполнение скрипта в Ansible не получается. Результат все же можно сохранить в переменную и далее в файл. При сохранении в файл на экране тоже отобразится. Пока использую with_items, как это делать с loop, надо отдельно тестировать, просто так заменить на loop нельзя.

Выполнить команду на удаленном сервере и сохранить результат там или локально

- name: Play to run find command and capture its output to a file
  hosts: my-test-host
  tasks:
@anutator
anutator / loop_over_lists.md
Created November 18, 2022 17:30 — forked from carlessanagustin/loop_over_lists.md
ANSIBLE: Loop over 2 lists
  • playbook test.yml
---
- hosts: localhost
  gather_facts: no
  connection: local

  vars:
    type: st1
@anutator
anutator / postgresql.md
Last active October 21, 2022 08:04
upgrade postgresql in RedOS

Обновление PostgreSQL в RedOS 7.3.1 с 14 до 15 версии

Нас обязывают использовать российские ОС, и приходится заморачиваться, т.к. новые пакеты добавляют только по заявкам (мы оставили, но ждать долго — RedOS работает с Posgres PRO, тоже российской компанией, а там пока максимальная мажорная версия 14). На текущий момент в RedOS максимальная версия PostgreSQL 14.5.

Версия RedOS может ввести в заблуждение. Кажется, что это аналог CentOS 7, но пакеты для CentOS 7 не подходят, и надо ставить пакеты от Redhat (CentOS, Oracle) 8:

$ cat /etc/*release
RED OS release MUROM (7.3.1) MINIMALNAME="RED OS"
VERSION="MUROM (7.3.1)"
PLATFORM_ID="platform:el7"
@anutator
anutator / git.md
Last active October 8, 2022 22:37
Git

Работа с частью большого репозитория (sparse-checkout)

Версия 2.25.0 и выше (проверялось в 2.37). Новая функция – «sparse-checkout» позволяет работать только с частью репозитория, только необходимыми каталогами, если репозиторий используется несколькими отделами (например большой монорепо) и занимает очень много места.

атляет, то есть, не поражает. В планах было на gitlfs все опрокинуть

# клонируем существующий репозиторий, но скачиваем только структуру
git clone --filter=blob:none --no-checkout git@<репозиторий>

# ограничить рабочий каталог только файлами в корневом каталоге и в каталоге .git
@anutator
anutator / releases.md
Created October 8, 2022 21:25
Terraform

В терраформе 1.3 удалят функцию defaults на опциональные значения и заменят синтаксисом

variable "with_optional_attribute" {
  type = object({
    a = string                # a required attribute
    b = optional(string)      # an optional attribute
    c = optional(number, 127) # an optional attribute with a default value
  })
}
@anutator
anutator / vscode.md
Created October 8, 2022 20:49
VSCode

Для оформления использую цветовую тему One Dark Pro.

https://github.com/harry-cpp/code-nautilus — добавляет правую кнопку Open with Code в файловый менеджер Nautilus (используется в Ubuntu, Pop!_OS), если нажать на папку. Установка:

wget -qO- https://raw.githubusercontent.com/harry-cpp/code-nautilus/master/install.sh | sudo bash

Использует стандартную версию VSCode. У меня VSCode Insiders, поэтому в ~/.local/share/nautilus-python/extensions/code-nautilus.py поменять:

@anutator
anutator / helm-cheatsheet.md
Last active January 3, 2023 18:47
Kubernetes

Добавление репозитория helm

Можно добавить свой созданный репозиторий с чартами или репозиторий из Интернет, искать на https://artifacthub.io/ helm repo add bitnami https://charts.bitnami.com/bitnami — добавили репозиторий с локальными именем bitnami, далее указан адрес репозитория helm repo list — список локальныех репозиториев helm repo update — получить (обновить) информацию о доступных чартах из соответствующих репозиториев чартов. Информация кешируется локально, потом может использоваться командой поиска. helm search repo — список всех чартов во всех установленных репозиториях helm search repo -l — список всех чартов во всех установленныx репозиториях, отображать все версии каждого чарта helm search repo nginx — поиск во всех добавленных репозиториях чартов со словом nginx в названии или описании. Регистр букв не учитывается. CHART VERSION — версия самого чарта. APP VERSION — версия приложения (например nginx), которое разворачивает чарт. helm search repo -l nginx или `helm search