Forum Stats

  • 3,839,578 Users
  • 2,262,507 Discussions
  • 7,901,005 Comments

Discussions

Is it somehow possible to connect ODI to MS Azure DevOps Server Git repository

User_91PLS
User_91PLS Member Posts: 2 Green Ribbon

Hi,

is it somehow possible to connect ODI (Build ODI_12.2.1.4.0_GENERIC_190913.1025) to MS Azure DevOps Server (2020.0.1, on-premise) git repository? I added all SSL certificates to JVM trust store but I am still receiving an error:

"ODI-12377: Failed to get server certificate for VCS server [URL]. connection not yet open"

MS Azure DevOps Server (and git repo) is accessible via web browser and I have also tested the SSL connection by SSLPoke tool (https://github.com/rksk/SSLPoke) with no error. Connection to git repository hosted on github is working. Is MS Azure DevOps Server git supported by ODI at all? Where could by the problem? Thank you for any advice.

Tagged:

Answers

  • User_33YVB
    User_33YVB Member Posts: 2 Green Ribbon

    Any update? Was trying the same thing and got the same error.

  • User_91PLS
    User_91PLS Member Posts: 2 Green Ribbon

    This worked for us:

    - ODI connection to Git had to be solved via SSH (HTTPS did not work for us), port 22 (well-known port for SSH) must be enabled on the Azure DevOps Server side.

    - On the Java ODI side (attention, this must be the exact version of the JDK actually used by ODI !!!) it is necessary to import SSL certificates for Azure DevOps Server URL (in pem format, possible conversion of cer -> pem can be done via openssl utility openssl x509 -inform der -in certificate.cer -out certificate.pem) for and the corresponding CA to the keystore, which is done with the command: [JDK dir] \ bin \ keytool -import -file "[path] \ certificate.pem" -alias azuredevops -keystore "[path to ODI JDK directory] \ jre \ lib \ security \ cacerts". You can verify the correctness of the import by listing the contents of the keystore using the command: [JDK dir] \ bin \ keytool -list -v -keystore [JDK dir] \ jre \ lib \ security \ cacerts. The default password to access the keystore is "changeit".

    - Next, you need to generate a key pair that will be used to log in to Azure DevOps Server Git without having to enter a username and password, using the ssh-keygen command. Two files are generated, one containing the private key and the other the public key, a password is chosen for the private key that protects it, and is later entered in ODI when configuring the Git connection.

    - The public key must be entered via the Azure DevOps Server web interface to your user account, see the instructions here: https://docs.microsoft.com/en-us/azure/devops/repos/git/use-ssh-keys-to- authenticate? view = azure-devops.

    - Within the ODI studio, it is necessary to configure the connection to Git via the menu Team -> Settings -> Edit Connection as follows:

    * Authentication Type: Ssh Authentication

    * Git URL: ssh: //[email protected]: 22 / collection / teamproject / _git / repository (when the value is copied directly from the Azure DevOps Server web interface, it is in the form ssh: //yourazuredevops.com: 22 / collection / teamproject / _git / repositoy, which must then be modified and the "prefix" git @ must be added as a "technical" username, which is irrelevant and is only needed for URL validation on the ODI side).

    * In the Select Password or Key File section, select the Private Key File option, select the path to the private key file, and enter the password protecting the private key, see the description above.

    - Subsequently, the remote repository (Team -> Settings -> Clne Remote Repository) should be cloned into the required local directory.

  • User_33YVB
    User_33YVB Member Posts: 2 Green Ribbon

    Thank you for your prompt update. Was using a local git as an medium before pushing the repo to DevOps, I am going to test your solution now, appreciated it!