2017-07-03 3 views
0

Ich habe https://packages.cloud.google.com/yum als Remote Repo in Artifactory konfiguriert.Artefakty yum relativer Pfad funktioniert nicht

Meine Repo-Datei auf Centos 7.3 sieht wie folgt aus:

[kubernetes] 
    name=kubernetes 
    baseurl=https://artifactory.company.com/artifactory/packages.cloud.google.com-yum/repos/kubernetes-el7-x86_64/ 
    enabled=1 
    gpgcheck=1 

Wenn ich yum install -y kubelet laufen druckt er diesen Fehler:

e7a4403227dd24036f3b0615663a37 FAILED 
    https://artifactory.company.com/artifactory/packages.cloud.google.com-yum/repos/kubernetes-el7-x86_64/../../pool/e7a4403227dd24036f3b0615663a371c4e07a95be5fee53505e647fd8ae58aa6-kubernetes-cni-0.5.1-0.x86_64.rpm: [Errno 14] HTTPS Error 500 - Internal Server Error 
    Trying other mirror. 

Ich bin ziemlich sicher, dass das Problem der relative Pfad in der URL ist : kubernetes-el7-x86_64/../../pool

Wenn ich die URL wget, funktioniert es gut, weil wget den relativen Pfad vor dem Senden der HTTP-Anfrage löst, aber yum nicht d o this und Artifactory gibt eine 500 zurück, wenn Sie ihm eine URL mit ../ darin geben. Kann jemand relative URLs in Artifactory aktivieren? Oder wie bekomme ich yum, um URLs aufzulösen, bevor die Anfragen gesendet werden?

Ich betreibe diese Versionen:

  • Artifactory 5.2.0
  • Yum 3.4.3-150

Update: Dies ist die HTTP Antwort von artifactory:

{ 
     "errors" : [ { 
     "status" : 500, 
     "message" : "Could not process download request: Path element cannot end with a dot: packages.cloud.google.com-yum-cache/repos/kubernetes-el7-x86_64/../" 
     } ] 
    } 
+0

extern diese url gibt eine 404 - ist es nur von innerhalb gcloud zugänglich? – user3788685

+0

https://artifactory.company.com ist eine zensierte URL. Dieser Server ist nur im Netzwerk meines Unternehmens verfügbar. – user3508370

Antwort

7

Das Remote-Repository sollte mit der folgenden URL in Artifactoryfestgelegt werden 10 https://packages.cloud.google.com/yum/

Die baseurl auf dem yum-Client auf dem repodata Ordner mit dem folgenden Punkt sollten: baseurl = http://artifactory.company.com/artifactory/yum-remote/repos/kubernetes-el7-x86_64/ (Der Name der Remote-Repository ist 'yum remote')

Dies sollte ohne weitere Arbeit Konfiguration von der Artifactory-Seite.

Der Fehler, den Sie in Bezug auf den relativen Pfad 'kubernetes-el7-x86_64 /../../ pool' erwähnt haben, tritt beim Caching des Artefakts auf. Artifactory kann nicht in einen Pfad zwischengespeichert werden, der das Muster '..' enthält, sodass die Anforderung fehlschlägt. Es kann von Artifactory Seite mit einem Benutzer-Plugin gelöst werden. Wenn der Pfad das Muster '..' enthält, ändert das Plugin den Pfad, in dem sich das Artefakt befindet, so dass es dieses Muster nicht enthält. Dies ist jetzt überflüssig, da die Registry Pfade abruft, die kein '..' enthalten.

+0

Gibt es ein vorhandenes Artefakt-Plugin, das die URL neu schreibt? Wie heißt? – user3508370

+0

Sie können ein Beispiel Benutzer-Plugin in der JIRA-Fall Kommentar finden: https://www.jfrog.com/jira/browse/RTFACT-9141 – Aviza