Preparing for installation (AEN 4.2.0)
======================================

.. raw:: html

    <div class="contents local topic" id="contents">
    <ul class="simple">
    <li><a class="reference internal" href="#downloading-aen-installers" id="id2">Downloading AEN installers</a></li>
    <li><a class="reference internal" href="#gathering-ip-addresses-or-fqdns" id="id3">Gathering IP addresses or FQDNs</a></li>
    <li><a class="reference internal" href="#set-up-variables" id="id4">Set up variables</a></li>
    <li><a class="reference internal" href="#what-s-next" id="id5">What&#8217;s next</a></li>
    </ul>
    </div>
    <div class="section" id="downloading-aen-installers">
    <h2><a class="toc-backref" href="#id2">Downloading AEN installers</a><a class="headerlink" href="#downloading-aen-installers" title="Permalink to this headline">¶</a></h2>
    <p>Download the installers and copy them to the corresponding servers.</p>
    <div class="highlight-bash"><div class="highlight"><pre><span></span><span class="nv">RPM_CDN</span><span class="o">=</span><span class="s2">&quot;https://820451f3d8380952ce65-4cc6343b423784e82fd202bb87cf87cf.ssl.cf1.rackcdn.com&quot;</span>
    curl -O <span class="nv">$RPM_CDN</span>/aen-server-4.2.0-Linux-x86_64.sh
    curl -O <span class="nv">$RPM_CDN</span>/aen-gateway-4.2.0-Linux-x86_64.sh
    curl -O <span class="nv">$RPM_CDN</span>/aen-compute-4.2.0-Linux-x86_64.sh
    </pre></div>
    </div>
    <p>NOTE: The current $RPM_CDN server will be confirmed in an email
    provided by your sales rep.</p>
    <p>NOTE: These instructions use <cite>curl</cite> or <cite>wget</cite> to download packages, but you may
    use other means to move the necessary files into the installation directory.</p>
    </div>
    <div class="section" id="gathering-ip-addresses-or-fqdns">
    <h2><a class="toc-backref" href="#id3">Gathering IP addresses or FQDNs</a><a class="headerlink" href="#gathering-ip-addresses-or-fqdns" title="Permalink to this headline">¶</a></h2>
    <p>AEN is very sensitive to the IP address or domain name used to
    connect to the server and gateway nodes. If users will be
    using the domain name, you should install the nodes using
    the domain name instead of the IP addresses. The authentication
    system requires the proper hostnames when authenticating users
    between the services.</p>
    <p>Print this page and fill in the domain names or IP addresses of the nodes
    below and record the user name and auto­-generated password for the
    administrative user account in the box below after installing the
    AEN server node:</p>
    <table border="1" class="docutils">
    <colgroup>
    <col width="24%" />
    <col width="23%" />
    <col width="18%" />
    <col width="14%" />
    <col width="22%" />
    </colgroup>
    <thead valign="bottom">
    <tr class="row-odd"><th class="head" colspan="2">Node          | Name or IP address</th>
    <th class="head">Port Number</th>
    <th class="head" colspan="2">Username |  Password</th>
    </tr>
    </thead>
    <tbody valign="top">
    <tr class="row-even"><td colspan="2">AEN server    |</td>
    <td>&nbsp;</td>
    <td colspan="2"><div class="first last line-block">
    <div class="line"><br /></div>
    </div>
    </td>
    </tr>
    <tr class="row-odd"><td colspan="2">AEN gateway   |</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    <tr class="row-even"><td colspan="2">AEN compute   |</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    </tbody>
    </table>
    <p>NOTE: The values of these IP entries or DNS entries are referred
    to as <code class="docutils literal"><span class="pre">&lt;AEN_SERVER_IP&gt;</span></code> or <code class="docutils literal"><span class="pre">&lt;AEN_SERVER_FQDN&gt;</span></code>, particularly
    in examples of shell commands. Consider actually assigning those
    values to environment variables with similar names.</p>
    </div>
    <div class="section" id="set-up-variables">
    <h2><a class="toc-backref" href="#id4">Set up variables</a><a class="headerlink" href="#set-up-variables" title="Permalink to this headline">¶</a></h2>
    <p>Certain variables need to have values assigned to them before you
    start the installation.</p>
    <div class="section" id="aen-server-address">
    <h3>AEN server address<a class="headerlink" href="#aen-server-address" title="Permalink to this headline">¶</a></h3>
    <p>To define an environment variable for the AEN server
    address&#8212;FQDN or IP:</p>
    <div class="highlight-bash"><div class="highlight"><pre><span></span><span class="nb">export</span> <span class="nv">AEN_SERVER</span><span class="o">=</span>&lt;AEN_SERVER_IP&gt;  <span class="c1"># &lt;from table above&gt;</span>
    </pre></div>
    </div>
    <p>NOTE: The address&#8212;FQDN or IP&#8212;specified for the AEN server
    must be resolvable by your intended AEN users&#8217; web clients.</p>
    <p>To verify your hostname, run <code class="docutils literal"><span class="pre">echo</span> <span class="pre">$AEN_SERVER</span></code>.</p>
    </div>
    <div class="section" id="aen-functional-id">
    <span id="id1"></span><h3>AEN functional ID<a class="headerlink" href="#aen-functional-id" title="Permalink to this headline">¶</a></h3>
    <p>AEN must be installed and executed by a Linux account called the
    AEN Service Account. The username of the AEN Service Account is
    called the AEN Functional ID (NFI). The AEN Service Account is
    created during AEN installation&#8212;if it does not exist&#8212;and is
    used to run all AEN services.</p>
    <p>The default NFI username is wakari. Another popular choice is
    aen_admin.</p>
    <p>To set the environment variable AEN_SRVC_ACCT to <code class="docutils literal"><span class="pre">wakari</span></code> or
    your chosen name before installation, run
    <code class="docutils literal"><span class="pre">export</span> <span class="pre">AEN_SRVC_ACCT=&quot;aen_admin&quot;</span></code>.</p>
    <p>This name is now the username of the AEN Service Account and of
    the AEN administrator account.</p>
    <p>When upgrading AEN, set the NFI to the NFI of the current
    installation.</p>
    </div>
    <div class="section" id="aen-functional-group">
    <h3>AEN functional group<a class="headerlink" href="#aen-functional-group" title="Permalink to this headline">¶</a></h3>
    <p>The AEN Functional Group (NFG) may be given any name. Most often, it is
    set to <code class="docutils literal"><span class="pre">aen_admin</span></code> or <code class="docutils literal"><span class="pre">wakari</span></code>. This Linux group includes the AEN service
    account, so all files and directories that have the owner NFI also have the
    group NFG.</p>
    <p>When upgrading AEN, set the NFG to the NFG of the current
    installation.</p>
    <p>To set the NFG before installation, run:</p>
    <div class="highlight-bash"><div class="highlight"><pre><span></span><span class="nb">export</span> <span class="nv">AEN_SRVC_GRP</span><span class="o">=</span><span class="s2">&quot;&lt;NFG&gt;&quot;</span>
    </pre></div>
    </div>
    <p>NOTE: Replace <code class="docutils literal"><span class="pre">&lt;NFG&gt;</span></code> with your NFG name.</p>
    </div>
    <div class="section" id="aen-install-sudo-command">
    <h3>AEN install sudo command<a class="headerlink" href="#aen-install-sudo-command" title="Permalink to this headline">¶</a></h3>
    <p>During AEN installation the installers perform various operations
    that require root level privileges. By default, the installers use
    the sudo command to perform these operations.</p>
    <p>Before installation, set the AEN_SUDO_CMD_INSTALL environment
    variable to perform root level operations. You can also set it to
    no command at all if the user running the installer(s) has root
    privileges and the sudo command is not needed or is not
    available.</p>
    <p>EXAMPLES:</p>
    <div class="highlight-bash"><div class="highlight"><pre><span></span><span class="nb">export</span> <span class="nv">AEN_SUDO_CMD_INSTALL</span><span class="o">=</span><span class="s2">&quot;&quot;</span>
    <span class="nb">export</span> <span class="nv">AEN_SUDO_CMD_INSTALL</span><span class="o">=</span><span class="s2">&quot;sudo2&quot;</span>
    </pre></div>
    </div>
    </div>
    <div class="section" id="aen-sudo-command">
    <h3>AEN sudo command<a class="headerlink" href="#aen-sudo-command" title="Permalink to this headline">¶</a></h3>
    <p>By default the AEN services uses <code class="docutils literal"><span class="pre">sudo</span> <span class="pre">-u</span></code> to perform
    operations on behalf of other users&#8212;including <code class="docutils literal"><span class="pre">mkdir</span></code>,
    <code class="docutils literal"><span class="pre">chmod</span></code>, <code class="docutils literal"><span class="pre">cp</span></code> and <code class="docutils literal"><span class="pre">mv</span></code>.</p>
    <p>To override the default sudo command when sudo is not
    available on the system, before installing, set the AEN_SUDO_CMD
    environment variable.</p>
    <p>AEN must have the ability to perform operations on behalf
    of other users. Therefore, this environment variable cannot be
    set to an empty string or to <code class="docutils literal"><span class="pre">null</span></code>.</p>
    <p>CAUTION: Any command that replaces AEN_SUDO_CMD must support the
    <code class="docutils literal"><span class="pre">-u</span></code> command line parameter&#8212;similarly to the sudo command.</p>
    <p>EXAMPLE:</p>
    <div class="highlight-bash"><div class="highlight"><pre><span></span><span class="nb">export</span> <span class="nv">AEN_SUDO_CMD</span><span class="o">=</span><span class="s2">&quot;sudo2&quot;</span>
    </pre></div>
    </div>
    <p>The optional environmental variable AEN_SUDO_SH is another way
    to customize AEN sudo operations. When AEN executes any sudo
    command, it will include the value of AEN_SUDO_SH, if it is set.</p>
    <p>EXAMPLE: If your username is &#8220;jsmith&#8221; and the values are set as:</p>
    <div class="highlight-none"><div class="highlight"><pre><span></span>AEN_SUDO_CMD=sudo
    OWNER=jsmith
    AEN_SUDO_SH=sudologger
    PROJECT_HOME=/projects/jsmith/myproj
    </pre></div>
    </div>
    <p>Then AEN will resolve:</p>
    <div class="highlight-bash"><div class="highlight"><pre><span></span><span class="nv">$AEN_SUDO_CMD</span> -u <span class="si">${</span><span class="nv">OWNER</span><span class="si">}</span> <span class="nv">$AEN_SUDO_SH</span> rm -rf <span class="nv">$PROJECT_HOME</span>
    </pre></div>
    </div>
    <p>As:</p>
    <div class="highlight-bash"><div class="highlight"><pre><span></span>sudo -u jsmith sudologger rm -rf /projects/jsmith/myproj
    </pre></div>
    </div>
    <p>In this case the sudologger utility could be a pass-through
    utility that logs all sudo usage and then executes the remaining
    parameters.</p>
    </div>
    <div class="section" id="post-installation-sudo-configuration">
    <h3>Post-installation Sudo configuration<a class="headerlink" href="#post-installation-sudo-configuration" title="Permalink to this headline">¶</a></h3>
    <p>While root/sudo privileges are required during installation,
    root/sudo privileges are not required during normal operations
    after install, if user accounts are managed outside the software.
    However root/sudo privileges are required to start the services,
    thus in the service config files there may still need to be an
    AEN_SUDO_CMD entry.</p>
    <p>For more information, see <a class="reference internal" href="config/config-sudo-customizations.html"><span class="doc">Configuring sudo customizations</span></a>.</p>
    </div>
    <div class="section" id="aen-remote-database-settings">
    <h3>AEN remote database settings<a class="headerlink" href="#aen-remote-database-settings" title="Permalink to this headline">¶</a></h3>
    <p>By default AEN server uses a local database.
    To override the default database location, see <a class="reference internal" href="config/config-remote-mongodb.html"><span class="doc">Install AEN connected to a remote Mongo DB instance</span></a>.</p>
    </div>
    </div>
    <div class="section" id="what-s-next">
    <h2><a class="toc-backref" href="#id5">What&#8217;s next</a><a class="headerlink" href="#what-s-next" title="Permalink to this headline">¶</a></h2>
    <p><a class="reference internal" href="install-server-node.html"><span class="doc">Install the AEN server</span></a>.</p>
    </div>
