Я пытаюсь настроить непрерывную интеграцию с Bamboo. Я хочу настроить задачу, которая подключается по ssh к нашему сценическому серверу, переходит в нужный каталог и выполняет git pull.
Я смог настроить задачу ssh, но выполнить git pull было сложно.
Шаги, которые я предпринял:
Настроил задачу ssh для перехода в каталог проекта и запуска следующего сценария:
#!/bin/bash echo "pulling from master" git pull origin master
Скрипт запускается, но журналы показывают ошибку
Permission denied (publickey).
после попытки извлечения.Я переключил свой удаленный URL-адрес с HTTPS на ssh и создал открытый ключ. Теперь, когда я пытаюсь выполнить ручное извлечение, он запрашивает парольную фразу ключа.
Используется
ssh-agent
для кэширования парольной фразы для сеанса.Я понял, что этот кеш сохраняется только до тех пор, пока я не закрою сеанс, поэтому я выполнил шаги из этой статьи (https://confluence.atlassian.com/display/BITBUCKET/Set+up+SSH+for+Git), чтобы запускать ssh-agent при каждом новом сеансе. А именно я добавил этот скрипт в свой
.bashrc
:SSH_ENV=$HOME/.ssh/environment # start the ssh-agent function start_agent { echo "Initializing new SSH agent..." # spawn ssh-agent /usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}" echo succeeded chmod 600 "${SSH_ENV}" . "${SSH_ENV}" > /dev/null /usr/bin/ssh-add } if [ -f "${SSH_ENV}" ]; then . "${SSH_ENV}" > /dev/null ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || { start_agent; } else start_agent; fi
и добавил это в файл .ssh/config:
Host myStashInstance.org
IdentityFile ~/.ssh/id_rsa
- В статье говорилось, что мне будет предложено ввести парольную фразу, и агент запустится, но этого не произошло. Мне все еще нужно вручную запустить ssh-agent.
Я хотел бы знать, какими будут следующие шаги для запуска ssh-agent при запуске нового сеанса, чтобы я мог продолжить выяснять, как завершить настройку этого задания. (Также открыт для предложений по другим направлениям, если я полностью на неправильном пути.)
~/.bash_profile
, чтобы он запускался в оболочке входа в систему. - person glenn jackman   schedule 10.07.2015