2014-03-26 26 views
1

我希望能夠將python軟件包安裝到openshift中,但這些軟件包位於我的私有存儲庫中,位於bitbucket上。Openshift:如何從私有存儲庫安裝python模塊?

如何爲Openshift創建SSH密鑰,以及如何讓Openshift在安裝軟件包時使用它? (加入相應的公共密鑰後到位桶的部署重點)

我已經試過:

我以前ssh-keygen創建於~/.openshift_ssh/的關鍵。它已經創建,但我不確定它正在被使用。

我也嘗試在<jenkins_dir>/app-root/data/.ssh/jenkins_id_rsa.pub上添加publick鍵,但結果總是相同的。在buildjob的jenkins控制檯輸出上:

Doing git clone from ssh://[email protected]/jpimentel/zed.git to /tmp/easy_install-FpEKam/zed.git 
Host key verification failed. 
fatal: Could not read from remote repository. 

Please make sure you have the correct access rights 
and the repository exists. 

有什麼可以做的嗎?

回答

0

如果你想部署自定義的python模塊,那麼推薦的方法是在應用程序源代碼根目錄下創建一個libs目錄,並將它們推送到你的應用程序git存儲庫。 OpenShift會自動選擇你的模塊。

+1

坦率地說,這不是一個可行的選擇,特別是如果你有一個相當大的回購協議增加(在我的情況,主要是靜態文件Django的,但我想它可以與各種墨盒的情況)。 FTR,我提出了一個支持案例,希望在實施適當的解決方案之前找到一些解決方法。 – giallu

+0

@giallu您可以分享支持案例的結果(如果有的話)嗎? – jpimentel

+0

完成,看我自己的答案。 – giallu

1

所以,在這個時候OpenShift並沒有提供一個簡單的機制來做到這一點。我會敦促開發人員查看https://gondor.io/support/dependencies/,以便有效解決該問題。

這麼說,我終於能找到一個可以接受的(至少對我來說)的解決方法是在兩個可擴展的和非可擴展的應用程序的工作原理,通過以下步驟:

  1. 創建部署/目錄在倉庫中

  2. 把你的私人部署密鑰的副本在上述目錄

  3. 創建一個bash腳本部署/ wrapper.sh將與所提供的密鑰運行ssh:

    #!/bin/sh 
    ssh -o StrictHostKeyChecking=no -i $OPENSHIFT_REPO_DIR/deploy/id_deploy [email protected] 
    

    請注意通過禁用主機密鑰檢查的選項;沒有它,克隆就會失敗。

  4. 在構建鉤子(.openshift/action_hooks/build)中安裝依賴關係。在我的情況下,我添加了類似

    echo "Cloning private repo..." 
    source $VIRTUAL_ENV/bin/activate 
    GIT_SSH=$OPENSHIFT_REPO_DIR/deploy/wrapper.sh pip install git+ssh://[email protected]/team/reponame.git#egg=reponame 
    
  5. 提交所有內容並將其推送到openshift。

  6. 利潤!