mkdir -p /home/ubuntu/nexus3/etc/ssl
2. Create a keystore by running the following commands:
cd /home/ubuntu/nexus3/etc/ssl keytool -genkeypair -keystore keystore.jks -storepass password \ -alias fabric.com -keyalg RSA -keysize 2048 -validity 5000 \ -keypass password -dname 'CN=*.fabric.com, dc=fabric, dc=com, C=US' \ -ext 'SAN=DNS:fabric.com,IP:192.168.56.30' -ext "BC=ca:true"
This creates a file named keystore.jks, if you use other name for the nexus3, for some reasons, it won't work, very strange.
3. Make the user 200:200 to own the directory:
sudo chown -R 200:200 /home/ubuntu/nexus34. Run the following command to start it.
docker run -d -p 8081:8081 -p 8443:8443 --restart always \ --name nexus -v /home/ubuntu/nexus3:/nexus-data \ -v /home/ubuntu/nexus3/etc/ssl:/opt/sonatype/nexus/etc/ssl \ sonatype/nexus3
This command starts up nexus3 container and hookup with the container with the right keystore location and data location.
5. Configure the nexus3 to use ldap by login to https://192.168.56.30:8081
Administration -> Security -> LDAP
Connection:
LDAP server address: ldap://192.168.56.30:389
Search base: dc=fabric,dc=com
Authentication method: Simple Authentication
Username or DN: cn=admin,dc=fabric,dc=com
Password: fabric123
User and group:
Base DN: empty string
Are users locate in structures below the user base DN? off
User filter: empty string
User ID sttribute: uid
Real name attribute: cn
Email attribute: mail
Password attribute: userpassword
Map LDAP groups as roles: off
Administration -> Security -> Realms
add LDAP Realm to the left box
6. Raw repository:
Create a raw hosted repository,
Create a role so that people in the role can operator the raw repository
Administration -> Security -> Roles, Click on Create role button, Nexus role
basically add nx-repository-view-raw-<repo-name>-* to the left box.
Map users to that role.
Administration -> Security -> Users, Source: LDAP, search for all the users
basically associate each user to the role created in above step.
Then use the following command to upload a file to the repository
curl -u user1:fabric123 -k --upload-file users.ldif \ https://192.168.56.30:8081/repository/fabricImagesThe above command uploads the file users.ldif to the raw (hosted) repository named fabricImages
curl -u user1:fabric123 -k -T users.ldif \ https://192.168.56.30:8081/repository/fabricImages/testfolder/users.ldifThe above command uploads a file and create the testfolder directory as well at the same time.
7. Docker repository:
Create docker hosted repository, set https port to be 8443, Force basic authentication
and allow redeploy. Since this is using the self signed certificate, any docker client
wants to access it, will need to put the server certificate in
/etc/docker/certs.d/<server>:<port>/ca.crt filethe server has to be the server name or IP address.
the port in this case is 8443
To get the server certificate file, run the following command:
keytool -printcert --sslserver 192.168.56.30:8443 -rfc
No comments:
Post a Comment