Опитвам се да настроя непрекъсната интеграция с Bamboo. Искам да конфигурирам задача, която ssh е в нашия сценичен сървър, cd е в правилната директория и изпълнява git pull.
Успях да настроя ssh задачата, но изпълнението на git pull беше трудно.
Стъпки, които предприех:
Конфигурира ssh задача за cd в директорията на проекта и изпълнява следния скрипт:
#!/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-агент с всяка нова сесия. По-точно добавих този скрипт към моя
.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