Если есть локальный прокси
python3 -m pip install --index-url http://my.package.repo/simple/ SomeProject
Если есть локальный прокси
python3 -m pip install --index-url http://my.package.repo/simple/ SomeProject
Штука древняя, но.
Иногда требуется принести набор пакетов в закрытый контур, делать это поштучно долго, можно поставить в подобную систему с инетом и просто взять скачанное.
Но по умолчанию дебиан удаляет пакеты (с 2016 года) после установки.
echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' \
> /etc/apt/apt.conf.d/01keep-debs
потом забирать в /var/cache/apt/...
Пользовательские ВМ в Yandex Cloud не поддерживают протокол IPv6, это является причиной ошибки "101: Network is unreachable".
Чтобы принудительно воспользоваться только IPv4 для APT, можно использовать такой параметр: -o Acquire::ForceIPv4=true
https://itisgood.ru/2018/09/19/kak-zastavit-dispetchera-paketov-apt-ispolzovat-ipv4-v-ubuntu-16-04/
Вариант 2:
sysctl -w net.ipv6.conf.all.disable_ipv6=1
После того, как HashiCorp перелицензировали свои продукты под Business Source License и они перестали соответствовать определению Open Source Definition, группа вендоров объединилась и создала свой форк Terraform. Сначала он назывался OpenTF, а потом его переименовали в OpenTofu.
Сегодня стало известно, что OpenTofu стал проектом Linux Foundation, а значит, пользователи могут быть уверены, что новый проект останется Open Source и не будет зависеть от одного вендора.
https://github.com/opentofu/opentofu
Терраформ вполне себе рип. Надеюсь, как и остальные продукты HashiCorp со временем.
IaC — управление всей инфраструктуры через код. Это удобно для изменений, автоматизации, автодокументирования
Аналог terraform
Главное отличие Crossplane в основной идее проекта: создание центра управления инфраструктурой на базе Kubernetes. Состояние описывается именно в виде Custom Resources в Kubernetes, и Crossplane постоянно поддерживает его актуальность. Terraform, напротив, синхронизирует состояние только во время выполнения вышеупомянутых CLI-команд.
Пример под яндекс:
https://github.com/yandex-cloud/provider-jet-yc/blob/main/examples/storage/bucket.yaml
Чтобы скрывать пароли из Git-репозитория, подключим инструмент Helm Secrets. Он позволяет зашифровывать чувствительную информацию с помощью различных методов и расшифровывать при применении.
helm plugin install https://github.com/jkroepke/helm-secrets --version v3.15.0
Sops — утилита, которая умеет шифровать и дешифровывать конфигурационные файлы
Age — утилита для шифрования, которую уже использует Sops для работы с конфигурационными файлами
age-keygen -o key.txt
💡 Частая ошибка. Обязательно добавляем key.txt
в .gitignore
, чтобы он не попал в Git
export SOPS_AGE_KEY_FILE=$(pwd)/key.txt
export SOPS_AGE_RECIPIENTS=<публичный ключ, который распечатала команда выше>
$(pwd) здесь указан специально. Используйте абсолютный путь, так шифрование и дешифрование будут работать правильно
values/argocd.yaml
:helm secrets enc values/argocd.yaml
(из яндекс.практикум, курс gitops)
Если надо расшифровать файл:
helm secrets dec values/argocd.yaml