mirror of
https://github.com/rgl/nexus-vagrant.git
synced 2026-09-30 00:31:11 +02:00
move the nexus provisioning to a separate script file
This commit is contained in:
@@ -113,85 +113,3 @@ server {
|
||||
EOF
|
||||
ln -s ../sites-available/$config_fqdn.conf /etc/nginx/sites-enabled/
|
||||
systemctl restart nginx
|
||||
|
||||
|
||||
# install java.
|
||||
apt-get install -y default-jre
|
||||
|
||||
|
||||
# add the nexus user.
|
||||
groupadd --system nexus
|
||||
adduser \
|
||||
--system \
|
||||
--disabled-login \
|
||||
--no-create-home \
|
||||
--gecos '' \
|
||||
--ingroup nexus \
|
||||
--home /opt/nexus \
|
||||
nexus
|
||||
install -d -o root -g nexus -m 750 /opt/nexus
|
||||
|
||||
|
||||
# download and install nexus.
|
||||
pushd /opt/nexus
|
||||
# see http://www.sonatype.com/download-oss-sonatype
|
||||
# see https://books.sonatype.com/nexus-book/3.3/reference/index.html
|
||||
nexus_tarball=nexus-3.3.1-01-unix.tar.gz
|
||||
nexus_download_url=https://sonatype-download.global.ssl.fastly.net/nexus/3/$nexus_tarball
|
||||
nexus_download_sha1=e7859e13622ea7e04474a2719c07b045c5fabb53
|
||||
wget -q $nexus_download_url
|
||||
if [ "$(sha1sum $nexus_tarball | awk '{print $1}')" != "$nexus_download_sha1" ]; then
|
||||
echo "downloaded $nexus_download_url failed the checksum verification"
|
||||
exit 1
|
||||
fi
|
||||
tar xf $nexus_tarball --strip-components 1
|
||||
rm $nexus_tarball
|
||||
chmod 700 nexus3
|
||||
chown -R nexus:nexus nexus3
|
||||
install -d -o nexus -g nexus -m 700 .java # java preferences are saved here (the default java.util.prefs.userRoot preference).
|
||||
install -d -o nexus -g nexus -m 700 nexus3/etc
|
||||
grep -v -E '\s*##.*' etc/nexus-default.properties >nexus3/etc/nexus.properties
|
||||
sed -i -E 's,(application-host=).+,\1127.0.0.1,g' nexus3/etc/nexus.properties
|
||||
sed -i -E 's,nexus-pro-,nexus-oss-,g' nexus3/etc/nexus.properties
|
||||
diff -u etc/nexus-default.properties nexus3/etc/nexus.properties || true
|
||||
sed -i -E 's,\.\./sonatype-work/,,g' bin/nexus.vmoptions
|
||||
popd
|
||||
|
||||
|
||||
# start nexus.
|
||||
cat >/etc/systemd/system/nexus.service <<'EOF'
|
||||
[Unit]
|
||||
Description=Nexus
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=nexus
|
||||
Group=nexus
|
||||
ExecStart=/opt/nexus/bin/nexus run
|
||||
WorkingDirectory=/opt/nexus
|
||||
Restart=always
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable nexus
|
||||
systemctl start nexus
|
||||
|
||||
# install tools.
|
||||
apt-get install -y --no-install-recommends httpie
|
||||
apt-get install -y --no-install-recommends jq
|
||||
|
||||
# wait for nexus to come up.
|
||||
bash -c 'while [[ "$(wget -qO- http://localhost:8081/service/extdirect/poll/rapture_State_get | jq -r .data.data.status.value.edition)" != "OSS" ]]; do sleep 5; done'
|
||||
|
||||
# print the version using the API.
|
||||
wget -qO- http://localhost:8081/service/extdirect/poll/rapture_State_get | jq --raw-output .data.data.uiSettings.value.title
|
||||
wget -qO- http://localhost:8081/service/extdirect/poll/rapture_State_get | jq .data.data.status.value
|
||||
|
||||
# configure nexus with the groovy script.
|
||||
bash /vagrant/provision/execute-provision.groovy-script.sh
|
||||
|
||||
# clean packages.
|
||||
apt-get -y autoremove
|
||||
apt-get -y clean
|
||||
@@ -0,0 +1,80 @@
|
||||
#!/bin/bash
|
||||
set -eux
|
||||
|
||||
|
||||
# install java.
|
||||
apt-get install -y default-jre
|
||||
|
||||
|
||||
# add the nexus user.
|
||||
groupadd --system nexus
|
||||
adduser \
|
||||
--system \
|
||||
--disabled-login \
|
||||
--no-create-home \
|
||||
--gecos '' \
|
||||
--ingroup nexus \
|
||||
--home /opt/nexus \
|
||||
nexus
|
||||
install -d -o root -g nexus -m 750 /opt/nexus
|
||||
|
||||
|
||||
# download and install nexus.
|
||||
pushd /opt/nexus
|
||||
# see http://www.sonatype.com/download-oss-sonatype
|
||||
# see https://books.sonatype.com/nexus-book/3.3/reference/index.html
|
||||
nexus_tarball=nexus-3.3.1-01-unix.tar.gz
|
||||
nexus_download_url=https://sonatype-download.global.ssl.fastly.net/nexus/3/$nexus_tarball
|
||||
nexus_download_sha1=e7859e13622ea7e04474a2719c07b045c5fabb53
|
||||
wget -q $nexus_download_url
|
||||
if [ "$(sha1sum $nexus_tarball | awk '{print $1}')" != "$nexus_download_sha1" ]; then
|
||||
echo "downloaded $nexus_download_url failed the checksum verification"
|
||||
exit 1
|
||||
fi
|
||||
tar xf $nexus_tarball --strip-components 1
|
||||
rm $nexus_tarball
|
||||
chmod 700 nexus3
|
||||
chown -R nexus:nexus nexus3
|
||||
install -d -o nexus -g nexus -m 700 .java # java preferences are saved here (the default java.util.prefs.userRoot preference).
|
||||
install -d -o nexus -g nexus -m 700 nexus3/etc
|
||||
grep -v -E '\s*##.*' etc/nexus-default.properties >nexus3/etc/nexus.properties
|
||||
sed -i -E 's,(application-host=).+,\1127.0.0.1,g' nexus3/etc/nexus.properties
|
||||
sed -i -E 's,nexus-pro-,nexus-oss-,g' nexus3/etc/nexus.properties
|
||||
diff -u etc/nexus-default.properties nexus3/etc/nexus.properties || true
|
||||
sed -i -E 's,\.\./sonatype-work/,,g' bin/nexus.vmoptions
|
||||
popd
|
||||
|
||||
|
||||
# start nexus.
|
||||
cat >/etc/systemd/system/nexus.service <<'EOF'
|
||||
[Unit]
|
||||
Description=Nexus
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=nexus
|
||||
Group=nexus
|
||||
ExecStart=/opt/nexus/bin/nexus run
|
||||
WorkingDirectory=/opt/nexus
|
||||
Restart=always
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable nexus
|
||||
systemctl start nexus
|
||||
|
||||
# install tools.
|
||||
apt-get install -y --no-install-recommends httpie
|
||||
apt-get install -y --no-install-recommends jq
|
||||
|
||||
# wait for nexus to come up.
|
||||
bash -c 'while [[ "$(wget -qO- http://localhost:8081/service/extdirect/poll/rapture_State_get | jq -r .data.data.status.value.edition)" != "OSS" ]]; do sleep 5; done'
|
||||
|
||||
# print the version using the API.
|
||||
wget -qO- http://localhost:8081/service/extdirect/poll/rapture_State_get | jq --raw-output .data.data.uiSettings.value.title
|
||||
wget -qO- http://localhost:8081/service/extdirect/poll/rapture_State_get | jq .data.data.status.value
|
||||
|
||||
# configure nexus with the groovy script.
|
||||
bash /vagrant/provision/execute-provision.groovy-script.sh
|
||||
Reference in New Issue
Block a user