Vagrant を使用して開発環境をプロビジョニングしています。
Vagrant は次のようなことを行います。
- Jenkins(および依存関係があるためJava)をインストールします
- ...その他の依存関係のインストール....
id_rsa
秘密SSH キーを にコピー/.ssh
し$JENKINS_HOME
ます。/var/lib/jenkins/
すべての GitHub リポジトリを複製し、プロジェクトをビルドおよびデプロイするスクリプトを実行します。
私たちが抱えている問題は#3
、上記のリストにあります。
これはスクリプトで実行する必要があるため、GitHub に対してコマンドを手動で実行してエントリを に追加することはできませんknown_hosts
。だから私は以下を使用してみました:
sudo -u jenkins ssh-keyscan github.com > /var/lib/jenkins/.ssh/known_hosts
ユーザーを使用せずにこれを実行しようとしましjenkins
たが、失敗しました。
Vagrantfile
Jenkins のインストール後に が参照しているスクリプトを次に示します。
#Setup SSH for GitHub
echo "Configuring GitHub SSH Keys..."
if [ ! -d /var/lib/jenkins/.ssh ];
then
#copy private key to $JENKINS_HOME/.ssh
sudo mkdir -p /var/lib/jenkins/.ssh
sudo cp /vagrant/ssh/id_rsa /var/lib/jenkins/.ssh/
#Modify permissions so jenkins user can access
sudo chown -R jenkins:jenkins /var/lib/jenkins/.ssh/
sudo chmod 0600 /var/lib/jenkins/.ssh
sudo chmod 0600 /var/lib/jenkins/.ssh/id_rsa
#Add GitHub to known_hosts so it doesn't prompt us
sudo -u jenkins ssh-keyscan github.com > /var/lib/jenkins/.ssh/known_hosts
else
echo "GitHub SSH Keys already configured..."
fi
私はこれを完全に間違っていますか?
私の目標は、秘密鍵を必要な場所にコピーして、手動での操作なしで (Jenkins から) GitHub にリクエストできるようにすることです。
私の問題は、スクリプトを作成したり、権限が制限されたコーナーに自分自身をCHMODしたりしないと、これを行うことができないように見えることです。
参照された投稿などの同様の問題を参照して見ました