Если есть локальный прокси
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 Попалась на глаза статья от фланта, самые популярные версии мини куберов
Kubernetes в миниатюре для локального запуска: k0s, MicroK8s, kind, k3s и Minikube
Есть уже готовый пакет, который готовит docker-compose.yml. Но дальше есть нюансы..
groupadd: invalid group ID 'sail'
Фикс:
echo 'WWWGROUP=1000
WWWUSER=1000' >> .env
Для работы яндекс-сервисов "как сервис" требуется сертификат, в систему его добавить можно так
sudo mkdir -p /usr/local/share/ca-certificates/Yandex && \ sudo wget "https://storage.yandexcloud.net/cloud-certs/CA.pem" -O /usr/local/share/ca-certificates/Yandex/YandexInternalRootCA.crt
и по хорошему потом надо
update-ca-certificates
Загрузка csv в postgresql
\copy dtm(depot,store,time,distance) from '/<путь к файлу>/файл.csv' DELIMITERS ',' CSV HEADER;
Бывает желание/нужда на стадии сборки подключать volumes, и изучение вопроса вышло довольно интересным.
Даже если в 2023 написать прямо
docker build -v "xxx:xxx" - будет ошибка
unknown shorthand flag: 'v' in -v
There is a way to mount a volume during a build, but it doesn't involve Dockerfiles.