Run pre-installation steps manually
Use the following guide to prepare for the setup of IA Cloud Enterprise in cases, when the company's policies forbid using root users or sudo permissions for installing the Product. This instruction will help
you manually run the required preliminary steps and install the Product as the application user.
Introduction
The following steps require root privileges:
- Creation of users and groups.
- Creation of directories and assigning permissions to them.
- Extracting installation package.
- Setting
sysctlparameters. - Assigning setcap capabilities to a customer-facing web server (HAProxy).
Intelligent Automation Cloud Enterprise requires a shared network folder. For that, you can use any existing NAS. Otherwise, see further for the instruction on deploying NFS on the IA Cloud server.
Prepare Linux servers
To prepare the Linux servers for installation:
As a user with
sudoorrootpermissions, log in to the APP server:$ ssh -i ~/.ssh/<your-ssh-key> <root-user>@<linux-server>Create a primary group (if you don't have it) for the application user. Skip this step, if you want to use the existing Active Directory group or existing local Linux group.
Remember that the group and group ID (GID) must be the same on each server.
$ groupadd WFUSERCreate the application user (here,
WFUSER), if you don't have it yet, and add it to the group created on step 2. Skip this step, if you want to use an existing Active Directory user or an existing local Linux user. Remember that the user and user ID (UID) must be the same on each Linux server.$ useradd -m -g WFUSER WFUSERCreate the installation directory (here, /opt/workfusion), and set the application user as an owner of this directory.
$ mkdir /opt/workfusion $ chmod 0755 /opt/workfusion $ chown WFUSER:WFUSER /opt/workfusionCreate a shared directory (here, /opt/workfusion/shared), and set the application user as an owner of this directory.
$ mkdir /opt/workfusion/shared $ chmod 0755 /opt/workfusion/shared $ chown WFUSER:WFUSER /opt/workfusion/sharedExtract the installation package:
On the installation server, in the /opt/workfusion/ directory, create a directory for the IA Cloud installation package, for example, /opt/workfusion/wf_installer. Grant the read access for this directory to all users:
$ mkdir -p /opt/workfusion/wf_installer $ chmod 0755 /opt/workfusion/wf_installer $ chown WFUSER:WFUSER /opt/workfusion/wf_installer $ cd /opt/workfusion/wf_installerDownload the IA Cloud installation package with any available method. If Internet access is available on the server, use the following example, and remember to specify the link to the installer.
curl -o 'workfusion-full-package.tar.gz' '<link-to-IA-Cloud-installation-package>'Extract the downloaded package to the directory:
tar -xzvf /opt/workfusion/wf_installer/workfusion-full-package.tar.gz --strip 1 -C /opt/workfusion/wf_installer
Create the systemd unit file for supervisord management tool that is used for all IA Cloud services:
Calculate ulimits values based on the following example. Use your "number of vCPU" values for the calculations.
- LimitNOFILE: "number of vCPU multiplied by 25000"
- LimitNPROC: "number of vCPU multiplied by 1280"
Copy the following example to a text editor and replace the default values (here, 200000 and 10240), with the values calculated on the previous step. Here, the example is provided for eight vCPUs. If you have other values, use them for the calculations. Also, remember to change
INSTALL_DIR,User, andGroupaccording to your environment.[Unit] Description=supervisord Requires=local-fs.target After=local-fs.target [Service] Environment=INSTALL_DIR=/opt/workfusion User=WFUSER Group=WFUSER LimitNOFILE=200000 LimitNPROC=10240 LimitMEMLOCK=infinity Type=simple Restart=on-failure RestartSec=10 StartLimitInterval=300 StartLimitBurst=5 TimeoutStartSec=300 TimeoutStopSec=30 SendSIGKILL=yes ExecStart=/bin/bash -c 'while [ ! -f ${INSTALL_DIR}/python-site/bin/wfmanager ]; do sleep 30; echo "$(date) Waiting for wfmanager to be installed..."; done; source ${INSTALL_DIR}/environment.sh && exec ${INSTALL_DIR}/python-site/bin/supervisord -c ${INSTALL_DIR}/supervisord/conf/supervisord.conf' [Install] WantedBy=multi-user.targetCopy and paste the updated example above to the file
/etc/systemd/system/supervisord.service.
Run the following commands to enable autostart of the supervisord service:
$ systemctl daemon-reload $ systemctl enable supervisord.service $ systemctl start supervisord.serviceRepeat steps 1-8 on each Linux server.
Set up server with Workfusion service
By default, the Workfusion service runs on the APP server.
To set up a server with Workfusion service, as root copy the HAProxy
binary and enable HAProxy to run under application user on privileged
ports (below 1025):
$ mkdir -p /opt/workfusion/haproxy/bin
$ cd /opt/workfusion/wf_installer/
$ cp sources/haproxy-{{VERSION}}-wf-bundled.bin /opt/workfusion/haproxy/bin/haproxy
$ chmod 0750 /opt/workfusion/haproxy/bin/haproxy
$ chown -R WFUSER:WFUSER /opt/workfusion/haproxy/bin
$ /usr/sbin/setcap CAP_NET_BIND_SERVICE=+eip /opt/workfusion/haproxy/bin/haproxy
$ echo net.ipv4.tcp_tw_recycle=0 >> /etc/sysctl.conf && sysctl -p
Set up server with BEP Master service
By default, the BEP Master service runs on the APP server for the basic setup or on the BEP Master server in case of the high-availability installation.
To set up a server with the BEP Master service:
Install the required packaged dependencies for BEP Master as
root:yum -y localinstall /opt/workfusion/wf_installer/sources/nfs-utils*Create the directory to mount to as
root:$ mkdir /opt/workfusion/vds-data $ chmod 0755 /opt/workfusion/vds-data $ chown WFUSER:WFUSER /opt/workfusion/vds-dataNote: VDS (Virtual Data Since) is the former name for the BEP component.
Prepare a shared directory:
If you are not going to use external NAS, set up the NFS-server:
Enable and start rpcbind as
root:$ systemctl enable rpcbind
$ systemctl daemon-reload
$ systemctl start rpcbind
$ systemctl status rpcbindCreate an NFS-server configuration file as
root:cat << EOF > /etc/sysconfig/nfs
# TCP port rpc.lockd should listen on.
LOCKD_TCPPORT=32800
# UDP port rpc.lockd should listen on.
LOCKD_UDPPORT=32700
#
# Optional arguments passed to rpc.nfsd. See rpc.nfsd(8)
RPCNFSDARGS=""
# Optional arguments passed to rpc.mountd. See rpc.mountd(8)
RPCMOUNTDOPTS=""
# Port rpc.mountd should listen on.
MOUNTD_PORT=20048
#
# Optional arguments passed to rpc.statd. See rpc.statd(8)
STATDARG=""
# Optional arguments passed to sm-notify. See sm-notify(8)
SMNOTIFYARGS=""
#
# Optional arguments passed to rpc.idmapd. See rpc.idmapd(8)
RPCIDMAPDARGS=""
#
RPCGSSDARGS=""
#
# Enable usage of gssproxy. See gssproxy-mech(8).
GSS_USE_PROXY="yes"
#
# Optional arguments passed to blkmapd. See blkmapd(8)
BLKMAPDARGS=""
EOFIn the exports file /etc/exports, add the following line, by pasting and running the example as
root:cat << EOF >> /etc/exports
/opt/workfusion/vds-data *(fsid=0,rw,async,no_root_squash,no_subtree_check,insecure)
EOFStart the NFS-server:
$ systemctl enable nfs-server
$ systemctl start nfs-server
$ systemctl status nfs-server
Only for external NAS:
Prepare the shared folder on NAS.
Paste and run the following command as
rootto ensure that the folder is mounted at startup:cat << EOF >> /etc/fstab
<nas_server_hostname>:/path/to/shared/folder /opt/workfusion/vds-data nfs rw,bg,retrans=5000,rsize=8192,vers=3,wsize=8192,timeo=14,intr 0 0
EOFRemember to specify your <nas_server_hostname> and </path/to/shared/folder>.
Mount the NFS shared folder as
root.mount /opt/workfusion/vds-data
Set up server with BEP Agent service
By default, BEP Agent service runs on the BEP Agent server.
To set up a server with BEP Agent service:
Install the required packages for BEP Agent Server(s) as
root:yum -y localinstall /opt/workfusion/wf_installer/sources/nfs-utils*Create a directory for NFS mount point as
root:$ mkdir /opt/workfusion/vds-data $ chmod 0755 /opt/workfusion/vds-data $ chown WFUSER:WFUSER /opt/workfusion/vds-dataIn /etc/fstab, add the following line, as
root:cat << EOF >> /etc/fstab <bep_master_hostname>:/opt/workfusion/vds-data /opt/workfusion/vds-data nfs rw,bg,retrans=5000,rsize=8192,vers=3,wsize=8192,timeo=14,intr 0 0 EOFNOTE: in case of using external NAS replace <bep_master_hostname>:/opt/workfusion/vds-data with actual NAS server hostname and shared folder path.
Mount the NFS-shared folder as
root:mount /opt/workfusion/vds-data
Set up server with Elasticsearch service
By default, the Elasticsearch service runs on the APP server in case of basic setup, or the INT server if you install the Product in the high-availability mode.
To set up a server with the Elasticsearch service:
Set required sysctl parameters by executing the following command as
root:cat << EOF > /etc/sysctl.d/elasticsearch.conf vm.max_map_count=262144 EOFApply the configuration as
root:sysctl -p /etc/sysctl.d/elasticsearch.conf
After you follow all the steps in the instruction, proceed to the
preparation of the configuration
files and installation. Remember not to run the command ./install.sh preinstall <server-name> on the Linux servers, as you have just
manually performed the same operations as the script does automatically. Proceed to the installation commands ./install.sh install <server-name> instead.