Если вы хотите начать домашнюю лабораторию, компьютер Raspberry Pi — отличный вариант, поскольку он малошумный, маломощный и легко расширяется дополнительными модулями, если вам нужно новое хранилище или другие функции Raspberry Pi, такие как подключение камер или дисплеев. В качестве домашнего лабораторного устройства это отличный способ начать строить лабораторию и работать над своими проектами в более дешевом и меньшем форм-факторе. Или, если вы хотите бросить вызов, вы можете попробовать запустить как можно больше, чтобы получить максимальную отдачу от этого маленького устройства.

В этой статье мы расскажем, как вы устанавливаете ОС Rasbian, как вы можете настроить удаленный доступ к этому недавно настроенному устройству и, наконец, как вы можете начать использовать конфигурацию в качестве инструментов кода, таких как Ansible, чтобы легко управлять тем, что работает на вашем устройстве.

Все фрагменты кода в этом посте будут работать в ОС Raspberry Pi, но должны работать и в системах Linux, подобных Debian.

Установка и настройка вашей ОС

Чтобы начать развертывание приложений на Raspberry Pi и использовать его, вам необходимо установить операционную систему. Вы должны выбрать эту операционную систему в зависимости от того, для чего вы хотите использовать эту машину; будь то базовая машина для запуска сервисов или машина полной виртуализации с чем-то вроде Docker.

Некоторые распространенные операционные системы, на которые следует обратить внимание, включают; ОС Raspberry Pi и Ubuntu. Для любой операционной системы вы выбираете минимальную установку, чтобы сохранить небольшой размер ОС и упростить работу на менее мощных устройствах. Пошаговое руководство по установке ОС Raspberry Pi на Raspberry Pi можно найти по ссылке ниже:



Одна вещь, на которую вы должны обратить внимание при запуске операционной системы на Raspberry Pi и использовании слота для SD-карты, заключается в том, что память SD-карты не работает, поэтому будьте готовы к этому. Из-за того, как Raspberry Pi переключает питание и с низкой емкостью записи SD-карт, со временем может быть повреждена память SD-карты при использовании.



Вы можете сделать некоторые меры по смягчению последствий, о которых вам следует знать, например, переключение креплений SD-карты на режим только для чтения или использование более стабильного хранилища, такого как дополнительный SSD или жесткий диск для вашей операционной системы, как показано ниже:



Настройка удаленного доступа

С вашей операционной системой мы хотим настроить ее, чтобы мы могли получить к ней доступ с другого компьютера через SSH. По умолчанию ваша операционная система автоматически получит IP-адрес от вашего маршрутизатора через DHCP, но мы хотим настроить статический адрес, чтобы мы всегда могли подключаться к одному и тому же адресу для доступа к нашему Raspberry Pi, который будет сохраняться между перезапусками.

Чтобы обновить сетевой интерфейс для использования статического IP-адреса, отредактируйте содержимое файла /etc/dhcpcd.conf. Просто отключите RASPBERRY_PI_IP и GATWAY_IP для IP-адреса, который вы хотите использовать Raspberry Pi, и IP-адреса вашего маршрутизатора соответственно.

interface eth0
static ip_address=RASPBERRY_PI_IP/24
static routers=GATWAY_IP
static domain_name_servers=1.1.1.1

Теперь, когда ваш Raspberry Pi доступен по статическому IP-адресу, мы захотим включить SSH в ОС Raspberry Pi, чтобы мы могли получить к нему удаленный доступ. В ОС Raspbian с помощью командной строки вы можете легко включить службу SSH, используя следующие команды.

# Set the ssh service to start on boot
sudo systemctl enable ssh
# Start the ssh service immediately without a reboot
sudo systemctl start ssh

С помощью службы ssh, запущенной на raspberry pi, вы теперь можете подключиться к raspberry pi по SSH с другой машины. Используя ssh-клиент с другого компьютера, выполните следующую команду, заменив статический IP-адрес вашего Raspberry Pi, настроенный ранее.

ssh pi@RASPBERRY_PI_IP

Вам будет предложено ввести пароль вашего Raspberry Pi, и после входа в систему вы сможете запускать команды на компьютере Raspberry Pi в качестве пользователя pi. Это очень полезный шаблон для доступа к машине через другие инструменты, и он просто более удобен, чем необходимость настройки другого набора устройств ввода-вывода для работы с ней. В следующем разделе мы расскажем, как вы можете использовать некоторые конфигурации в качестве инструментов кода для простого и удобного управления службами и конфигурацией на raspberry pi.

Запуск служб с конфигурацией в виде кода

Теперь ваш Raspberry Pi настроен для удаленного доступа, вы можете запустить на нем некоторые из своих собственных сервисов или дополнительно настроить его для нужд вашей домашней лаборатории. Чтобы сделать этот процесс проще и, что более важно, воспроизводимым, если вы хотите выполнить те же шаги настройки на другом Raspberry Pi, мы можем использовать инструменты, которые принимают конфигурацию в виде кода, что является концепцией, которая гласит, что мы можем определить конфигурацию и службы наших компьютеров с помощью простая конфигурация, написанная в виде кода, который можно запускать многократно и каждый раз получать одинаковые результаты. Это обеспечивает более предсказуемое управление вашими машинами и позволяет многократно запускать одни и те же параметры конфигурации на одном или нескольких хостах.

В этом разделе мы приведем пример того, как вы можете использовать ansible для написания простых playbooks, которые определяют последовательные задачи, которые вы хотите запустить на целевом хосте. Для примера ansible playbook мы установим несколько пакетов на хост и создадим другого пользователя на хосте.

# example-playbook.yaml
- name: Configure the raspberry pi
  hosts: RASPBERRY_PI_IP
tasks:
  - name: "Update Apt Cache"
    apt: 
      update_cache: yes
    tags: installation
- name: "Install Common packages"
    apt:
      name: ['runc', 'python-pip', 'docker.io', 'python3-venv', 'docker-compose']
      state: latest
    tags: installation, packages
  
  - name: "Python Docker"
    pip:
      name: 
        - docker
    tags: python
  
  - name: "Install Minikube"
    shell: 
      cmd: curl -Lo ~/minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-arm && chmod +x ~/minikube && mkdir -p /usr/local/bin/ && install ~/minikube /usr/local/bin/
    tags: installation, minikube

Как вы можете видеть в playbook, мы настроили IP-адрес хоста вместе с теми учетными данными для входа, которые мы хотели бы использовать, такими как имя пользователя и пароль ssh, а также пароль sudo, который ansible может использовать для повышения привилегий, когда это необходимо для выполнения некоторых действий. на хосте. В Ansible есть много модулей, доступных для общих функций системы Linux, и дополнительные модули, доступные для других сервисов или приложений, с которыми вы, возможно, захотите взаимодействовать, таких как AWS, другие операционные системы или что-то вроде Docker.

Теперь вы можете использовать следующий сценарий для запуска созданной книги воспроизведения на настроенном целевом хосте.

ansible-playbook example-playbook.yaml

Вы увидите вывод для каждой задачи, когда она выполняется на вашем raspberry pi. Как вы можете видеть, эта конфигурация в качестве инструмента кода может позволить очень простой способ настроить и запустить набор команд на машине для получения желаемого результата. Это сэкономит вам больше времени на отладку, так как результаты каждой команды должны быть намного более предсказуемыми. И в худшем случае, если все сломано, просто начните заново с новой ОС и снова запустите свой плейбук.

Если вы ищете еще несколько сервисов для запуска в своем стеке, ознакомьтесь со статьей ниже, в которой перечислены 10 самых популярных самостоятельных приложений, которые вы можете запускать.



Подведение итогов

Платформа Raspberry Pi очень проста в работе и предоставляет вам отличный уровень настраиваемости для всего, что вы хотите изучить или запустить на ней. Теперь у вас должно быть лучшее представление о некоторых важных соображениях, которые следует учитывать при настройке pi, о том, как вы можете настроить его для более удобного удаленного доступа и как вы можете использовать конфигурацию в виде кода, чтобы намного упростить управление вашим pi и программным обеспечением на нем. . Я бы порекомендовал, как только вы настроите свой raspberry pi, посмотреть на настройку некоторых важных служб на машине, таких как резервное копирование важных конфигураций и файлов, которые необходимо сохранить с raspberry pi, а также настроить оповещения о важных службах или журналах.

Подключиться дальше

  • Если вы думаете о подписке на Medium, вы можете помочь мне, воспользовавшись моей реферальной ссылкой.
  • Ознакомьтесь с другими моими публикациями здесь, на Medium, и, если вы хотите быть в курсе, подпишитесь через Email.
  • Свяжитесь со мной в Twitter или LinkedIn, если вы хотите пообщаться, если вы хотите нанять меня, я на Codementor.

Повышение уровня кодирования

Спасибо, что являетесь частью нашего сообщества! Перед тем, как ты уйдешь:

  • 👏 Хлопайте за историю и подписывайтесь на автора 👉
  • 📰 Смотрите больше контента в публикации Level Up Coding
  • 🔔 Подписывайтесь на нас: Twitter | ЛинкедИн | "Новостная рассылка"

🚀👉 Присоединяйтесь к коллективу талантов Level Up и найдите прекрасную работу