It is possible to install and setup Apigee Private Cloud as a non-root user, as long as the pre-requisites are met. If these are not met, then it needs to be setup by root
This article describes some of the common things that are needed to be performed by root before you can proceed with the Apigee installation as non-root user
Note: This article is intended to be just as a cheat sheet for the non-root Installation. All these steps are described in lot more detail in the Apigee Edge Private Cloud Install Cofig Guide and that will be the source of truthNote: Based on your installation topology and requirements, you would need to perform only subset of these steps. For eg, If you are just playing around and installing a All In One setup, you would need to verify all the steps, while if you are performing a multi-node or multi-data center deployment you just to take care of pre-reqs based on the component you are going to install on each machine [for eg, you need to check openldap prereqs only on machines where you would install ‘ms’, and postgres checks for machines where you would install ‘ps’]
> hostname <hostname> > hostname –i <IP Address>
You should see the IP of the Instance, [In EC2, it would be the private IP]
If you see 127.0.0.1
or multiple IPs or do not see anything at all, then you need to fix this by configuring /etc/hosts
and/or/etc/sysconfig/network
Make sure you have all the packages installed that are necessary for openldap, qpid and postgres
Quick Summary of the packages needed
uuid libxslt rsync postgresql93 postgresql93-libs openldap-clients openldap-servers db4-cxx glibc libaio libstdc++ libuuid boost-filesystem boost-program-options boost-system boost-test nspr nss nss-util cyrus-sasl-lib
You need to have Oracle JDK 6 or 7.
> java –version java version "1.7.x_yy" Java(TM) SE Runtime Environment (build 1.7.x_yy-bzz) Java HotSpot(TM) 64-Bit Server VM (build xx.xx-byy, mixed mode)
Following ports are at the least needed to be opened for external access, if they are not opened - execute the following commands [Based on your installation recipe, you might need to configure other ports as well, consult Edge Private Cloud Install Config Guide]
iptables -A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 9000 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 9001 -j ACCEPT service iptables save
In rare cases, you also might want to check tcp wrappers. This is needed for openldap to function correctly.
In file /etc/hosts.allow
, add the following to the first line
slapd: localhost
Update /etc/security/limits.conf
to include the following entries
apigee soft nofile 5000 apigee hard nofile 5000 <non-root-user> soft nofile 5000 <non-root-user> hard nofile 5000
Update /etc/sysctl.conf
to include these values
# Controls the maximum shared segment size, in bytes kernel.shmmax = 68719476736 # Controls the maximum number of shared memory segments, in pages kernel.shmall = 4294967296 # Set kernel semaphore params kernel.sem = 500 32000 32 1024
As non-root user, run apigee-install.sh
and verify the following , use a directory that has write access for the non-root user. Typically the ~
[home] folder
Now run the checks to make sure everything is alright
> ~/opt/apigee4/share/installer/apigee-openldap-check-prerequisites.sh Checking prerequisites Package openldap-clients: OK Package openldap-servers: OK >
> ~/opt/apigee4/share/installer/apigee-qpid-check-prerequisites.sh Checking prerequisites Package db4-cxx: OK Package glibc: OK Package libaio: OK Package libstdc++: OK Package libuuid: OK Package boost-filesystem: OK Package boost-program-options: OK Package boost-system: OK Package boost-test: OK Package nspr: OK Package nss: OK Package nss-util: OK Package cyrus-sasl-lib: OK nofile soft for user '<localuser>' is 5000: OK nofile hard for user '<localuser>' is 5000: OK >
> ~/opt/apigee4/share/installer/apigee-postgres-check-prerequisites.sh Checking prerequisites Checking if following packages are installed: uuid libxslt rsync postgresql93 postgresql93-libs postgresql93-contrib postgresql93-server Package uuid: OK Package libxslt: OK Package rsync: OK Package postgresql93: OK Package postgresql93-libs: OK Package postgresql93-contrib: OK Package postgresql93-server: OK kernel.sem: OK kernel.shmmax: OK kernel.shmall: OK >
All Good!, Now run the apigee-setup.sh
as non-root user
Thanks @bernhard1@rajeshmishra @Paul Mibus @marc.s.schreuder for your inputs