81 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Bash
		
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Bash
		
	
	
	
| #!/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://help.sonatype.com/display/NXRM3
 | |
| nexus_tarball=nexus-3.6.0-02-unix.tar.gz
 | |
| nexus_download_url=https://sonatype-download.global.ssl.fastly.net/nexus/3/$nexus_tarball
 | |
| nexus_download_sha1=8278ecb4969e2a2eb3abe373cb1914a4b863160c
 | |
| 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
 |