Шаг 11 из 12

Ещё раз про actions

В предыдущем шаге мы сохранили приватный ключ под названием DEPLOY_KEY в Actions Secrets. В рамках Workflow мы можем обращаться к нему через конструкцию:

${{ secrets.DEPLOY_KEY }}

Для установки ключа на машину, которая запускает наш Workflow, я предпочитаю использовать готовый action: https://github.com/shimataro/ssh-key-action, ссылка на Marketplace. YAML код выглядит так:

- name: Install SSH key
  uses: shimataro/ssh-key-action@v2.3.1
  with:
    key: ${{ secrets.DEPLOY_KEY }}
    name: id_rsa
    known_hosts: ${{ secrets.KNOWN_HOSTS }}
    config: |
      Host <your_server.com>
        HostName <your_server.com>
        User <username>
        IdentityFile ~/.ssh/id_rsa
        Port 22

Обратите внимание на known_hosts, здесь я передаю значение переменной, которая хранит информацию о хостах и публичных ключах. Параметр опционален с т.з. SSH, но желателен для предотвращения атак по типу Man-In-The-Middle. Получить значение для known_hosts можно просканировав нужный хост (наш сервер с Airflow):

ssh-keyscan you_server.com

Секция config это заполнение файла ~/.ssh/config, простыми словами конфиг для ssh-клиента с информацией о хосте, приватном ключе, пользователе и удалённом порту на который нужно стучаться для подключения.

Если вы задаётся все необходимые параметры для ssh/config, то Fabric умеет самостоятельно считывать путь до приватного ключа и нет необходимости передавать его явно.

Комментарии