Artifactory to Artifactory remote repos - artifactory

i have 2 Artifactory server and have configured ubuntu repos.
One off the artifactorys goes to internet to ubuntu and the other
artifactory connects to the artifactory with internet access.
I have the following problem. From my local artifactory i get always the error 404.
I cant fetch the metafile (Packages) from the ubuntu repo.
But if i reconfigure my remote repo and set --> store artifacts locally all seems fine.
I want store the artifacts locally. My local artifactory should ask the artifactory with internet access and should get all files from the remote artifactory.
Have anyone a idea how to solve my problem?
best regards

I assume you are trying to set up a smart remote repository with Artifactory. Refer to this wiki and set up the smart remote repository, basically, you should be adding the URL in your local Artifactory's remote repository as http://ARTIFACTORY_URL/ubuntu-remote/ and make sure the "store artifacts locally"is checked so that this remote repository can able to index the artifacts.

Related

I am trying to connect a local artifactory running on a laptop in docker to a remote artifactory on AWS behind an ELB

I have set up Artifactory OSS Version 6.9.1 on an AWS instance behind an ELB and have been successfully deploying builds to it from GitLab CI/CD. I am now trying to set up a local Artifactory OSS Version 6.10.0 on my laptop so that I can develop builds locally before sharing with the team.
My local artifactory connects perfectly to JCentre and I can browse that repository.
My gradle build will happily connect to the AWS hosted artifactory at http://{URL}/artifactory and resolve my dependencies.
When I connect a remote repository with http://"{URL}/artifactory I get a 500 Internal Error message on Test. If I take off the /artifactory it says it has connected successfully but when I try to browse the remote repo it is empty.
I read Connect one Artifactory to another Artifactory and followed the instructions to edit the json configuration and make the remote repository a smart repository here https://www.jfrog.com/confluence/display/RTF/Smart+Remote+Repositories.
It now has the smart repository image but still cannot be browsed.
Gradle still cannot resolve dependencies with the local artifactory using the remote-repo name.
As stated in the Smart Remote Repository documentation, you should configure the remote repository URL with the following structure:
http://ARTIFACTORY_URL/api/package-type/repository-key
So if you have a Gradle repository named "gradle-test", the URL should be:
http://ARTIFACTORY_URL/api/gradle/gradle-test
Hope this helps.
In the end it turned out to be ridiculously simple. When setting up the remote repository the key needs to be in the url as well as the key field.
So for a repo with a repository key 'fractal' the connection URL is counter-intuitively http:///artifactory/fractal

JFrog Artifactory remote Docker repository items not cached

I have a remote docker repository pointed at another JFrog Artifactory instance that I manage. I can see Docker images in both the original Artifactory repository and in the UI of the remote repository, but when I click on the manifest for the images, it says "this item is not cached" and I cannot pull the image from the remote repo. Is there a configuration item that I need to set to make sure the images get cached properly?
There is a setting "Store Artifacts Locally" in the Advanced Remote Repositories Settings. Check if it is selected.

What is the difference between local repository, remote respository and virtual repository in JFrog Artifactory

Could someone please explain what's are these 3 types of repos local, remote and virtual in JFrog Artifactory. , I'm not getting a clear picture of it from JFrog Artifactory documentation.
https://www.jfrog.com/confluence/display/RTF/Configuring+Repositories
Local repositories are physical, locally-managed repositories into which you can deploy artifacts.
A remote repository serves as a caching proxy for a repository managed at a remote URL (which may itself be another Artifactory remote repository).
Artifacts are stored and updated in remote repositories according to various configuration parameters that control the caching and proxying behavior. You can remove artifacts from a remote repository cache but you cannot actually deploy a new artifact into a remote repository.
A virtual repository (or "repository group") aggregates several repositories with the same package type under a common URL.

How to clone JFrog Artifactory into a local installation of JFrog Artifactory?

I have JFrog Artifactory http://organization.com/artifactory/ with read access. I can download individual artifacts let's say gulp-git-2.8.0.tgz using native browser.
Now, I have created local JFrog Artifactory http://localhost.com:8081/artifactory/ in machine and it does not have any artifacts.
I am trying to fetch my organizations artifacts lets say of npm package http://organization.com/artifactory/npm/ into my local artifactory http://localhost:8081/artifactory/npm/
Since it has many artifacts and I cannot do it manually of download from organization server and deploying it to my local server.
Is there anyway that I can fetch only the required package let's say npm to my local server? Or is there anyway to replicate my organization's package using read access into my local server?
Thanks in advance.
If you have Admin permissions to the source Artifactory you can setup Push replication or to perform a Repository Export.
Without Admin permissions, you can:
Setup Pull Replication.
Use the JFrog CLI in order to download entire repository content, and then upload it in the same structure.

Is there anyway to manually cache remote artifacts in Artifactory?

I am playing with a brand new OOS artifactory installation. I have a remote repository for jcenter. I am looking for a way to manually cache remote artifacts to jcenter-cach with artifactory web UI. I appreciate any help.
Edit remote Repository
Repository Brower
When your build is resolving artifacts from artifactory , Artifactory will cache artifacts that were requested from remote repositories.
But since you are looking for a way to do this manually with Artifactory Web UI , it can be don't even though it is little bit tricky.( NB: Remote Web search capability should be enabled in your Artifactory instance). Here are the steps to do so:-
Click Artifacts tab
Select Remote Search (this will open a window for search artifacts from bintray’s remote jcenter repository )
Find the artifact you wants to cache
When you find the artifact, click it , a pop up will appear and select Download.
This will download the file to your local machine and at the same time it will trigger Artifactory to catch the same artifact to remote cache.
NB: Be advised that caching artifacts may take a while depending on the file size or internet connection speed.

Resources