Рубрики
Uncategorized

Anisible: Легкие и безопасные развертывания SSH от GitHub

Anisible: Легкие и безопасные развертывания SSH от GitHub Anbible — это оркестр сервера … Помечено DevOps, Anisible, WebDev, Github.

Anisible — это инструмент оркестографии сервера, который вы также можете использовать для выполнения рабочих процессов на удаленных машинах в предсказуемом и повторителей. В предыдущем посте «Автоматизация развертывания Laravel, используя Anisible», я выстроил, как вы можете развернуть приложение, используя имя пользователя GitHub и Token пользователя, используя Anisible Vault. Тем не менее, вы также можете сделать это, используя SSH, убедившись, что ваш сервер имеет только для вашего репозитория приложений. Этот дополнительный уровень безопасности довольно легко выполнить, поэтому в этом посте мы рассмотрим, как это сделать.

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

  1. Создание ключа SSH на вашем сервере
  2. Отправка публичного ключа SSH в GitHub в качестве ключа развертывания
  3. Развертывание вашего приложения с использованием SSH

Предварительные условия

Вы можете использовать конфигурацию из предыдущего сообщения в блоге, чтобы развернуть приложение, единственное отличие в этом посте заключается в том, что вам не понадобится любовное хранилище, поэтому вы можете удалить ключ «vars_files» из конфигураций, упомянутых в этом посте. Наряду с этим вам нужно использовать адрес SSH в качестве значения «github_repo_url»: git@github.com: your-username/your-repository.git.

Создание ключа SSH на вашем сервере

Создание ключа SSH на вашем сервере — это быстрый процесс и включает одну команду:

ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa 

Давайте сломаем это:

  • «-T»: именно здесь мы определяем алгоритм открытого ключа и установили это на «RSA»
  • «-B»: мы устанавливаем размер ключа до 4096 битов (не идите ни одно ниже)
  • » -f «: мы указываем, какое имя файла мы хотели бы использовать.

Когда вы указываете имя файла, убедитесь, что файл еще не существует. Это приведет к перезаписанию существующего ключа, который мог бы сломать другие соединения SSH, которые вы могли бы иметь. Если файл уже существует, выберите другое имя: ~/.ssh/your_reposity_name, например.

Если вы в конечном итоге используете имя файла, который отличается от «ID_RSA», вам нужно сделать дополнительные изменения:

  1. Создание и/или откройте следующий файл: ~/.ssh/config
  2. Добавьте фрагмент ниже
  3. Обновите адрес SSH вашего репозитория, чтобы использовать пользовательский ключ SSH
Host github_server
    Hostname github.com
    IdentityFile ~/.ssh/your_repository_name
    IdentitiesOnly yes

И измените адрес SSH для вашего репозитория в Anbible для Git @ github_server: ваше имя пользователя/ваш-репозиторий. Обратите внимание, как мы больше не используем GitHub.com и теперь используете нашу настройку пользовательской настройки: github_server.

Отправка публичного ключа SSH в GitHub в качестве ключа развертывания

Теперь, когда мы сгенерировали личный и публичный SSH -ключ на нашем сервере, мы можем добавить это в качестве «развертывания» в наш репозиторий GitHub. Развертывание клавиш Клавиши SSH, которые дают другой доступ к машине к одному репозиторию GitHUB. Вы, как владелец репозитория, можете даже указать, имеет ли удаленная машина привилегии. По умолчанию клавиши развертывания имеют только доступ к Pull, который именно мы хотим для развертывания. Мы не хотим толкать привилегии, и мы не хотим давать удаленному компьютеру неограниченным доступом к нашу учетную запись GitHub.

Чтобы получить ваш открытый ключ SSH с вашего сервера, запустите эту команду:

cat ~/.ssh/id_rsa.pub

Если вы использовали пользовательское имя для своего ключа SSH, используйте его вместо этого. Это должно быть:

cat ~/.ssh/your_repository_name.pub

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

Теперь вы должны увидеть ваш открытый ключ в терминале, начиная с «SSH-RSA». Скопируйте весь ключ, включая SSH-RSA и именем машины в конце. Это все часть вашего открытого ключа.

Теперь перейдите в свой репозиторий на GitHub и перейдите на вкладку «Настройки» -> Развертывайте клавиши -> Добавить клавишу развертывания.

Дайте свой развертывать ключ узнаваемого заголовка, например, «Production Server», и вставьте открытый ключ SSH в поле «КЛЮЧ». Не проверяйте флажок «Разрешить доступ к записи», если вам действительно не нужно. Теперь нажмите «Добавить клавишу», и вы должны увидеть свой недавно созданный ключ развертывания в своем обзоре.

Развертывание вашего приложения с использованием SSH

Теперь, когда вы подключили свой сервер к репозиторию GitHub, вы можете внести некоторые изменения в свое приложение и совершить свои изменения. Когда вы готовы развернуть ваши изменения, выполните свой Ansible Playbook и посмотрите, как ваше приложение развернуто с использованием новой настройки SSH. Вы можете проверить, использовался ли ваша клавиша SSH для вывода изменений, обновляя обзор «развертывания клавиш» в GitHub. Теперь ключ развертывания теперь должен быть зеленым вместо серых, и оно должно быть сообщение «Последнее использование в течение последней недели».

Чтобы выполнить свой Ansible PlayBook, вы можете использовать эту команду:

ansible-playbook your-configuration-file.yml

Вывод

Развертывание ваших приложений от GitHub, используя SSH, не должно быть сложно, и вам не нужно предоставлять свой доступ к удаленному доступу к всей учетной записи GitHub. В этом посте мы перешли с использованием SSH через развертывание клавиш в Github, чтобы дать вашему удаленному компьютеру доступа к одному репозиторию, чтобы безопасно и легко развернуть ваше приложение.

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

Оригинал: «https://dev.to/roelofjanelsinga/ansible-easy-and-safe-ssh-deployments-from-github-5o6»