Все 12 лет своей карьеры я работал с .NET и был крепко привязан к Windows и проприетарным инструментам разработки. Спасибо Microsoft, с приходом .NET Core все изменилось и теперь разрабатывать для .NET можно почти на чем угодно и в чем угодно. На днях я решил попробовать переехать на Ubuntu.

Из-за слабого знания ОС, bash и запутанности вариантов установки некоторых инструментов (например, Docker) изначальная настройка заняла больше дня. То есть процесс довольно долгий и местами запутанный.

Чтобы сэкономить время будущему себе и тем, кто еще не пробовал (но хочет) разработку под Linux, а заодно чтобы познакомиться с bash, я оформил все в виде скриптов. Их можно запустить на чистой Ubuntu и они все настроят пока ты сидишь и пьешь чаек. Также, при желании, их легко допилить под свои нужды.

Если для вас это будет полезно — добро пожаловать под кат.

Скрипты доступны в репозитории на Github. Они несложные, для их чтения достаточно начального знакомства с bash. А человек хорошо знакомый с Ubuntu и bash, скорее всего, найдет в них и неоптимальные моменты (если нашли — сообщите мне, буду очень вам благодарен).

Полагая что скрипты в исходном виде подойдут не всем и будут «дотачиваться», к установке каждого инструмента я приложил ссылку с описанием установки из оффициальных доков. Все тонкие моменты (например, как запустить команду из под текущего пользователя находясь в режиме sudo) также снабжены ссылками.

Репозиторий состоит всего из пяти файлов.

1_opinionated.sh


Простите, но первый же скрипт это главный кандидат на «дотачивание», а то и вовсе пропуск.

Прежде всего, он устанавливает гипервизор для дальнейшего запуска kubernetes. Я выбрал Virtualbox, но также возможен запуск Kubernetes на KVM и вообще без гипервизора. Каждый вариант имеет свои нюансы с безопасностью, поэтому финальный выбор за вами.

Также здесь устанавливается поддержка русского языка (чтобы я смог написать эту статью).

После запуска необходимо выполнить перезагрузку, чтобы 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.