Вариант использования: у меня есть конвейер Jenkins для обновления среды разработки.Мой dev env - это экземпляр EC2 aws с docker compose.
Автоматизация была написана так:
withAWS(profile: 'default') {
sh "ssh -o StrictHostKeyChecking=no -i ~/my-key.pem user@$123.456.789 /bin/bash -c 'run some command like docker pull'"
}
Теперь у меня есть другие тестовые среды, и у них всех есть какая-тофайла docker-compose, файлов конфигурации и свойств, которые требуют, чтобы я просмотрел их все, когда что-то нужно изменить.
Чтобы помочь с этим, я создал новый репозиторий, чтобы сохранить все различные конфигурации среды, иМой план состоит в том, чтобы иметь клон этого репо во всех моих средах разработки и тестирования, поэтому, когда мне нужно что-то изменить, я могу просто сделать это локально, протолкнуть его, и мой конвейер jenkins обновит репозиторий в той среде, в которой он обновляется..
У моего jenkins есть учетные данные ssh для моего репо (он используется в другом задании, которое клонирует репо и запускает тесты с исходным кодом), поэтому я хочу использовать те же учетные данные.
Вопрос: Могу ли я каким-то образом, через ssh'ing на другую машину, использовать учетные данные Jenkins ssh-agent для клонирования / обновления битовой корзиныхранилище?
Редактировать: я изменил конвейер на:
script {
def hgCommand = "hg clone ssh://hg@bitbucket.org/my-repo"
sshagent(['12345']) {
sh "ssh -o StrictHostKeyChecking=no -i ~/mykey.pem admin@${IP_ADDRESS} /bin/bash -c '\"${hgCommand}\"'"
}
}
И я получаю:
[ssh-agent] Looking for ssh-agent implementation...
[ssh-agent] Exec ssh-agent (binary ssh-agent on a remote machine)
$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-FOburguZZlU0/agent.662
SSH_AGENT_PID=664
Running ssh-add (command line suppressed)
Identity added: /home/jenkins/workspace/abc@tmp/private_key_12345.key (rsa w/o comment)
[ssh-agent] Started.
[Pipeline] {
[Pipeline] sh
[test-env-config] Running shell script
+ ssh -o StrictHostKeyChecking=no -i /home/jenkins/mykey.pem admin@123.456.789 /bin/bash -c "hg clone ssh://hg@bitbucket.org/my-repo"
remote: Warning: Permanently added the RSA host key for IP address '765.432.123' to the list of known hosts.
remote: Permission denied (publickey).
abort: no suitable response from remote hg!
$ ssh-agent -k
unset SSH_AUTH_SOCK;
unset SSH_AGENT_PID;
echo Agent pid 664 killed;
[ssh-agent] Stopped.