Jenkins的sshagent/credential設置
利用jenkins來Deploy,有時候Continually Deploy的過程中會需要ssh到另一個linux上進行操作,這時候jenkinfiles中就需要用到插件ssh-agent和在credentials添加認證, 也就是添加jenkin服務器與目標機器的密鑰,來實現自動連接和登錄。
簡單方法:
- 在jenkin服務器上以jenkin用戶生成一個公鑰和密鑰,因爲jenkins運行在jenkins的linux賬戶上s:,所以需要用jenkins生成SSH key
su -s /bin/bash jenkins
ssh-keygen -t rsa -b 4096
cd /root/.ssh
可以看到id_rsa为SSH private key,id_rsa.pub为SSH public key。
2.copy這個public key到目標服務器上
copy-ssh-id root@10.6.100.2
ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.6.100.2
這樣本機的public key就追加到了root用戶的目標服務器的/root/.ssh/authorized_keys最後了。之後可以嘗試
ssh root@10.6.100.2
如果配置成功了,應該就不需要輸入password而免密登陸了。
3.在Jenkin UI界面上,添加credentials
private key需要粘貼你的目標服務器的私鑰: /root/.ssh/id_rsa。 保存就可以
然後在jenkinsfile中,可以調用這個ssh key,當需ssh到另一臺機器的時候。
例如:
sshagent (credentials: ['creadential_name']) {
sh """