- PVSM.RU - https://www.pvsm.ru -

Девелопишь на .NET Core? Го в Ubuntu, я создал

image
Photo by Kevin Horvat [1]
Все 12 лет своей карьеры я работал с .NET и был крепко привязан к Windows и проприетарным инструментам разработки. Но, спасибо Microsoft, .NET Core все изменил и теперь разрабатывать для .NET можно почти на чем угодно и в чем угодно. Дело за малым — перетащить на Core свои проекты. Не так давно я решил и этот вопрос и завел трактор для переезда на Ubuntu.

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

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

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

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

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

Итоговый набор состоит всего из пяти файлов — три скрипта и два конфига для kubernetes.

1_opinionated.sh

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

Прежде всего, он устанавливает гипервизор для дальнейшего запуска kubernetes. Я выбрал Virtualbox, но также возможен запуск на KVM и вообще без гипервизора [3]. Каждый вариант имеет свои нюансы, поэтому финальный выбор за вами.
Например, без гипервизора 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 [4], TSLint [5], Prettier [6], Stylelint [7], C# [8], Docker tools [9], Kubernetes tools [10], Kubernetes Support [11].

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.

Автор: fshchudlo

Источник [12]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/c-2/339128

Ссылки в тексте:

[1] Kevin Horvat: https://unsplash.com/@hidd3n

[2] в виде скриптов: https://github.com/fshchudlo/netcore-ubuntu-setup

[3] на KVM и вообще без гипервизора: https://kubernetes.io/docs/tasks/tools/install-minikube/

[4] Gitlens: https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens

[5] TSLint: https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-typescript-tslint-plugin

[6] Prettier: https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode

[7] Stylelint: https://marketplace.visualstudio.com/items?itemName=thibaudcolas.stylelint

[8] C#: https://marketplace.visualstudio.com/items?itemName=ms-vscode.csharp

[9] Docker tools: https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker

[10] Kubernetes tools: https://marketplace.visualstudio.com/items?itemName=ms-kubernetes-tools.vscode-kubernetes-tools

[11] Kubernetes Support: https://marketplace.visualstudio.com/items?itemName=ipedrazas.kubernetes-snippets

[12] Источник: https://habr.com/ru/post/479098/?utm_campaign=479098&utm_source=habrahabr&utm_medium=rss