It is NOT possible to mount Artifactory repositories as network drives in Windows due to unsupported commands, more information at https://www.jfrog.com/confluence/display/RTF/Using+WebDAV
However, you can utilise for example https://cyberduck.io/ opensource for working with files in Artifactory repositories.
Either ask your project administrators to provide you with service account credentials or set it as described at Project Detail#ServiceAccount
Details and credentials in this example are:
Repo URL: https://artifactory.shared.tds.CUSTOMERX.COM/artifactory/myrepoxxxname/ username: srv123abc password: SomEv3ryNic€PassWORD:) mount point: /MyRepoMountPoint script and service name: myreporemount |
mkdir -p /MyRepoMountPoint chown srv123abc:srv123abc -R /MyRepoMountPoint/ |
CentOS
yum install davfs2 -y |
Ubuntu
apt-get install davfs2 -y #Answer NO to unprivileged mouting of webdav mount points |
In case you are working in the environment with network proxies required to access the internet, you might need to disable proxies for davfs.
Simply add following at the end of /etc/davfs2/davfs2.conf file:
use_proxy 0 |
Edit /etc/davfs2/secrets file:
https://artifactory.shared.tds.CUSTOMERX.COM/artifactory/myrepoxxxname/ "srv123abc" "SomEv3ryNic€PassWORD:)" |
Edit /etc/fstab file
#https://artifactory.shared.tds.CUSTOMERX.COM/artifactory/myrepoxxxname/ /MyRepoMountPoint davfs user,auto,_netdev,nosuid,file_mode=664,dir_mode=775,gid=users,uid=srv123abc 0 0 https://artifactory.shared.tds.CUSTOMERX.COM/artifactory/myrepoxxxname/ /MyRepoMountPoint davfs user,auto,_netdev,nosuid,file_mode=664,dir_mode=775,gid=srv123abc,uid=srv123abc 0 0 |
mount -av |
The response should be like:
#root@jenkinsdev:~# mount -av #/ : ignored #/MyRepoMountPoint: successfully mounted |
Create the following re-mount script and service for automatic start
MOUNT_POINT=/MyRepoMountPoint; echo "set -ex; mount -a; ls -la $MOUNT_POINT; touch $MOUNT_POINT/tst; sleep 10; rm -f $MOUNT_POINT/tst; ls -la $MOUNT_POINT" > /usr/local/bin/myreporemount chmod +x /usr/local/bin/myreporemount myreporemount echo "[Unit] Description=Refresh of Artifactory repository repo mount point Wants=network-online.target After=network-online.target [Service] Type=oneshot ExecStart=-/usr/local/bin/myreporemount [Install] WantedBy=multi-user.target" > /etc/systemd/system/myreporemount.service systemctl enable myreporemount systemctl restart myreporemount systemctl status myreporemount |
What does it do:
|
Inspired by: