Девелопишь на .NET Core? Го в Ubuntu, я создал
Photo by Kevin Horvat
Все 12 лет своей карьеры я работал с .NET и был крепко привязан к Windows и проприетарным инструментам разработки. Но, спасибо Microsoft, .NET Core все изменил и теперь разрабатывать для .NET можно почти на чем угодно и в чем угодно. Дело за малым — перетащить на Core свои проекты. Не так давно я решил и этот вопрос и завел трактор для переезда на Ubuntu.
Результат очень понравился — все взлетело, а Docker и Kubernetes сделали процесс переезда намного легче. Но из-за слабого знания ОС, bash и запутанности вариантов установки некоторых инструментов (например, того же Docker) изначальная настройка заняла больше дня. То есть процесс довольно долгий и местами запутанный.
Дабы сэкономить время будущему себе и тем, кто также планирует попробовать разработку под Linux, я оформил все в виде скриптов. Их можно запустить на чистой Ubuntu и они все настроят пока ты сидишь и пьешь чаек. Также, при желании, их легко допилить под свои нужды.
Если для вас это звучит полезно — добро пожаловать под кат.
Скрипты доступны в репозитории на Github. Для их чтения достаточно начального знакомства с bash и они обильно снабжены ссылками. А человек искушенный, скорее всего, найдет в них и неоптимальные моменты (если нашли — сообщите мне, пожалуйста, буду очень вам благодарен).
Полагая, что скрипты будут чаще «дотачиваться» под конкретные нужды, чем использоваться в исходном виде, все тонкие моменты (например, как запустить команду из под текущего пользователя находясь в режиме sudo) также снабжены ссылками.
Итоговый набор состоит всего из пяти файлов — три скрипта и два конфига для kubernetes.
1_opinionated.sh
Простите, но первый же скрипт это главный кандидат на «дотачивание», а то и вовсе пропуск.
Прежде всего, он устанавливает гипервизор для дальнейшего запуска kubernetes. Я выбрал Virtualbox, но также возможен запуск на KVM и вообще без гипервизора. Каждый вариант имеет свои нюансы, поэтому финальный выбор за вами.
Например, без гипервизора Minikube будет запускать свои компоненты прямо на хост-машине и потребует установки устаревших пакетов Docker. А установка Virtualbox требует реконфигурации Secure boot и у него возможны конфликты по версиям пакетов.
Также скрипт устанавливает поддержку русского языка (чтобы я смог написать эту статью).
После запуска необходимо выполнить перезагрузку, чтобы Virtualbox смог себя донастроить перед установкой остальных инструментов.
2_setup.sh
Самый большой и полезный скрипт. Он устанавливает следующие инструменты:
- Git
- .NET Core 3.1 SDK
- Nodejs
- Docker Community Edition, добавляет репозиторий для обновлений Docker
- Проверяет что установлен Virtualbox или KVM и устанавливает minikube
- Устанавливает Visual Studio Code и несколько расширений для разработки как frontend, так и backend: Gitlens, TSLint, Prettier, Stylelint, C#, Docker tools, Kubernetes tools, Kubernetes Support.
3_configure.sh
Выполняет настройку установленных тулзов. А именно:
- Запрашивает имя и email пользователя Git
- Опицонально предлагает установить VS Code как редактор по умолчанию для Git
- Опционально предлагает использовать libsecret для сохранения паролей Git в зашифрованном виде
- Добавляет текущего пользователя в группу «docker», необходимую для работы с Docker без постоянного использования sudo
- Стартует minikube и устанавливает dashboard для доступа к кластеру через Web UI
- Создает в minikube пользователя-админа для доступа к дашборду. Для этого используются файлы «minikube_admin_user.yaml» и «minikube_role_binding.yaml» из репозитория.
- Выводит инструкции по получению токена для доступа к дашборду.
Чтобы применились настройки доступа к docker необходимо разлогиниться и перезапустить сервис docker. Или попросту перезагрузить ОС.
Вот, собственно, и все. Надеюсь, скрипты будут полезны желающим быстро освоиться с Ubuntu и разработкой под .NET Core.