DevOps Tools/Repository Management/Artifactory
From r00tedvw.com wiki
(Difference between revisions)
(→Repository) |
(→Repository) |
||
| Line 34: | Line 34: | ||
#!/bin/bash | #!/bin/bash | ||
export ARTIFACTORY_HOME=/opt/jfrog/artifactory</nowiki> | export ARTIFACTORY_HOME=/opt/jfrog/artifactory</nowiki> | ||
| + | |||
| + | ===Install Database=== | ||
| + | <nowiki>~$ sudo yum install -y mariadb-server | ||
| + | ~$ sudo systemctl start mariadb.service | ||
| + | ~$ sudo systemctl enable mariadb.service</nowiki> | ||
| + | Configure the Database | ||
| + | <nowiki>~$ mysql_secure_installation | ||
| + | Enter current password for root (enter for none): | ||
| + | Set root password? [Y/n] y | ||
| + | New password: | ||
| + | Re-enter new password: | ||
| + | Remove anonymous users? [Y/n] y | ||
| + | Disallow root login remotely? [Y/n] y | ||
| + | Remove test database and access to it? [Y/n] y | ||
| + | Reload privilege tables now? [Y/n] y</nowiki> | ||
=Uploading bulk= | =Uploading bulk= | ||
Revision as of 18:21, 22 August 2020
Artifactory
Contents |
Installation
Docker
Using docker you can pull the container from jfrog and then mount a local volume to house the configuration files and data.
https://www.jfrog.com/confluence/display/RTF/Installing+with+Docker
~$ sudo mkdir -p /opt/jfrog/artifactory ~$ sudo chown -R 1030:1030 /opt/jfrog/artifactory ~$ docker pull docker.bintray.io/jfrog/artifactory-oss:latest ~$ docker run --name artifactory-oss -d -v /opt/jfrog/artifactory:/var/opt/jfrog/artifactory -p 8081:8081 docker.bintray.io/jfrog/artifactory-oss:latest
Repository
Done on CentOS7
Dependencies
~$ sudo yum install -y wget java-1.8.0-openjdk-devel
Set the Java variables.
~$ sudo vim /etc/profile.d/java.sh #!/bin/bash export JAVA_HOME=$(dirname $(dirname $(readlink $(readlink $(which javac))))) export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
~$ source /etc/profile.d/java.sh ~$ $ echo "JAVA_HOME: $JAVA_HOME"; echo "PATH: $PATH"; echo "CLASSPATH: $CLASSPATH" JAVA_HOME: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-0.el7_8.x86_64 PATH: /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/r00t/.local/bin:/home/fgiuliani/bin:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-0.el7_8.x86_64/bin CLASSPATH: .:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-0.el7_8.x86_64/jre/lib:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-0.el7_8.x86_64/lib:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-0.el7_8.x86_64/lib/tools.jar
Add artifactory repo and install
~$ wget https://bintray.com/jfrog/artifactory-rpms/rpm -O bintray-jfrog-artifactory-oss-rpms.repo ~$ sudo mv bintray-jfrog-artifactory-oss-rpms.repo /etc/yum.repos.d/ ~$ sudo yum install -y jfrog-artifactory-oss
Add the Artifactory home environment variable
~$ sudo vim /etc/profile.d/artifactory.sh #!/bin/bash export ARTIFACTORY_HOME=/opt/jfrog/artifactory
Install Database
~$ sudo yum install -y mariadb-server ~$ sudo systemctl start mariadb.service ~$ sudo systemctl enable mariadb.service
Configure the Database
~$ mysql_secure_installation Enter current password for root (enter for none): Set root password? [Y/n] y New password: Re-enter new password: Remove anonymous users? [Y/n] y Disallow root login remotely? [Y/n] y Remove test database and access to it? [Y/n] y Reload privilege tables now? [Y/n] y
Uploading bulk
quick script to upload in bulk and add the sha1 checksum.
#!/bin/bash
FILES=/Users/r00t/Downloads/*
username=r00t
password=FDOdohfsohf347fsHDJDokhf89
artifactoryurl=http://usa-rnc-dockerhost:8081/artifactory/generic-local/
for f in $FILES
do
echo "Uploading $f to artifactory"
checksum=$(shasum -a 1 $f | awk '{ print $1 }')
file=$(printf $f | awk -F "/" '{ print $NF}')
curl --header "X-Checksum-Sha1:${checksum}" -u $username:$password -T $f "$artifactoryurl/$file"
done
Using API token
also calculating all the hashes with openssl
#!/bin/bash
url=http://dockerhost:8081/artifactory/generic-local/SubFolder
apikey=697929fdb66e46e1db0b4ec1fd4292028a853c7879a969b3e0188b14ee24d55d98d7e8110c2579c0
localfile=/Users/r00t/test.html
FILES=/Users/r00t/Downloads/crap/artifactoryfiles/*
search='partialfilename'
for f in $FILES
do
if [[ $f =~ "$search" ]]; then
file=$(basename $f)
sha1checksum=$(openssl sha1 $f | awk '{ print $2 }')
md5checksum=$(openssl md5 $f | awk '{ print $2 }')
sha256checksum=$(openssl sha256 $f | awk '{ print $2 }')
echo "uploading file: $f"
curl --header "X-JFrog-Art-Api:${apikey}" \
--header "X-Checksum-Sha1:${sha1checksum}" \
--header "X-Checksum-MD5:${md5checksum}" \
--header "X-Checksum-Sha256:${sha256checksum}" \
--upload-file $f \
-X PUT "$url/$file"
fi
done
Downloading Bulk
Done on a mac
#!/bin/bash
url=http://dockerhost:8081
repo=generic-local
path=/SubFolder
apikey=697929fdb66e46e1db0b4ec1fd4292028a853c7879a969b3e0188b14ee24d55d98d7e8110c2579c0
for f in $(curl $url/artifactory/api/storage/$repo$path | jq '.children[].uri' | sed -E -e 's/"|"\///g')
do
echo "downloading file: $f"
curl --header "X-JFrog-Art-Api:${apikey}" --remote-name $url/artifactory/$repo$path/$f
done
Deleting Bulk
If you need to delete a series of files in bulk, using a loose matching search term (regex)
#!/bin/bash
url=http://dockerhost:8081
repo=generic-local
path=/SubFolder
apikey=697929fdb66e46e1db0b4ec1fd4292028a853c7879a969b3e0188b14ee24d55d98d7e8110c2579c0
search='partialfilename'
for f in $(curl $url/artifactory/api/storage/$repo$path | jq '.children[].uri' | sed -E -e 's/"|"\///g')
do
if [[ $f =~ "$search" ]]; then
echo "deleting file: $f"
curl --header "X-JFrog-Art-Api:${apikey}" -X DELETE $url/artifactory/$repo$path/$f
fi
done