Updating Anaconda Enterprise Notebooks (AEN 4.0)
================================================

.. raw:: html

    <div class="section" id="summary">
    <h2>Summary<a class="headerlink" href="#summary" title="Permalink to this headline">¶</a></h2>
    <p>These instructions are for upgrading Anaconda Enterprise Notebooks
    Platform 0.10.0 or later. For help updating earlier versions, please
    contact your enterprise support representative.</p>
    <p>NOTE: The Named Service Account functionality of Anaconda Enterprise
    Notebooks 4.0 is available only via a full installation of Anaconda
    Enterprise Notebooks. The upgrade process does not add this new
    functionality. For full installation support, please contact your
    enterprise support representative.</p>
    <p>An update to the Anaconda Enterprise Notebooks Platform requires all
    instances of the three service categories to be updated individually:</p>
    <ul class="simple">
    <li><em>AEN Server</em></li>
    <li><em>AEN Gateway</em></li>
    <li><em>AEN Compute</em></li>
    </ul>
    <p>A typical installation of Anaconda Enterprise Notebooks likely consists
    of several <em>Compute</em> instances running on independent <em>Compute Nodes</em>,
    and possibly multiple <em>Gateways</em> if there is more than one <em>Data Center</em>
    tied into Anaconda Enterprise Notebooks. More details can be found in
    the <a class="reference internal" href="index.html"><span class="doc">Overview</span></a>.</p>
    <p>The update process requires that all of Anaconda Enterprise Notebooks
    service instances be stopped, updated, and then restarted. These
    instructions describe how to perform this process.</p>
    <p>Note: Any commands that call for the <code class="docutils literal"><span class="pre">root</span></code> user can also be done
    using <code class="docutils literal"><span class="pre">sudo</span></code>.</p>
    <p>If you encounter any difficulty during the process, please refer to the
    <a class="reference internal" href="../admin/troubleshooting.html"><span class="doc">Troubleshooting Guide</span></a> which
    provides guidance on:</p>
    <ul class="simple">
    <li>processes</li>
    <li>configuration files</li>
    <li>log files</li>
    <li>ports</li>
    </ul>
    <p>In the event you are unable to resolve an installation or upgrade
    problem please contact your enterprise support representative.</p>
    </div>
    <div class="section" id="pre-flight-check">
    <span id="aen-installation-update-preflight"></span><h2>Pre-Flight Check<a class="headerlink" href="#pre-flight-check" title="Permalink to this headline">¶</a></h2>
    <p>IMPORTANT: The upgrade process to v4.0.0 is not reversible. You must
    have a tested backup of your installation before starting the upgrade.</p>
    <p>Prior to updating each service on each host, you should perform the
    following operations:</p>
    <ol class="arabic">
    <li><p class="first">As the <code class="docutils literal"><span class="pre">root</span></code> user, check for pre-existing <code class="docutils literal"><span class="pre">.condarc</span></code>
    configuration files:</p>
    <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">ls</span> <span class="o">~</span><span class="n">root</span><span class="o">/.</span><span class="n">condarc</span>
    <span class="n">ls</span> <span class="o">~</span><span class="n">wakari</span><span class="o">/.</span><span class="n">condarc</span>
    </pre></div>
    </div>
    <p>If they exist, inspect these files for any special configuration
    <strong>not</strong> related to Anaconda Enterprise Notebooks. These settings need
    to be transferred to <code class="docutils literal"><span class="pre">.condarc</span></code> in the <em>root</em> environment
    (<code class="docutils literal"><span class="pre">/opt/wakari/miniconda/.condarc</span></code> or
    <code class="docutils literal"><span class="pre">/opt/wakari/anaconda/.condarc</span></code>)</p>
    <p>If there is an <em>anaconda.org token string</em> (similar to a UUID) in one
    of <em>channel</em> entries embedded in the path or URL, make a note of it.</p>
    <p>Once this has been completed, remove the following files:</p>
    <ul class="simple">
    <li><code class="docutils literal"><span class="pre">~root/.condarc</span></code></li>
    <li><code class="docutils literal"><span class="pre">~wakari/.condarc</span></code></li>
    </ul>
    </li>
    <li><p class="first">The Anaconda (or Miniconda) install&#8217;s conda configuration file
    <code class="docutils literal"><span class="pre">.condarc</span></code> needs to be verified. This file is in the top level
    directory of the Anaconda or Miniconda installation. It should exist
    and have at least the following entries (and possibly others):</p>
    <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">channels</span><span class="p">:</span>
      <span class="o">-</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">conda</span><span class="o">.</span><span class="n">anaconda</span><span class="o">.</span><span class="n">org</span><span class="o">/</span><span class="n">wakari</span>
      <span class="o">-</span> <span class="n">defaults</span>
    </pre></div>
    </div>
    <p>The <code class="docutils literal"><span class="pre">.condarc</span></code> file <strong>should not have any other</strong> references to
    specific versions of Anaconda Enterprise Notebooks. If found, remove
    such entries from the <code class="docutils literal"><span class="pre">.condarc</span></code> file.</p>
    </li>
    <li><p class="first">Suspend the services on each of the nodes with the appropriate
    command. For Anaconda Enterprise Notebooks versions 0.10.0 and later:</p>
    <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">service</span> <span class="n">wakari</span><span class="o">-</span><span class="n">server</span> <span class="n">stop</span>
    <span class="n">sudo</span> <span class="n">service</span> <span class="n">wakari</span><span class="o">-</span><span class="n">gateway</span> <span class="n">stop</span>
    <span class="n">sudo</span> <span class="n">service</span> <span class="n">wakari</span><span class="o">-</span><span class="n">compute</span> <span class="n">stop</span>
    </pre></div>
    </div>
    </li>
    <li><p class="first">Versions of Anaconda Enterprise Notebooks prior to 0.10.0 used
    <code class="docutils literal"><span class="pre">crontab</span></code> entries to restart the services after a reboot. These
    have been replaced by init scripts. Remove the <code class="docutils literal"><span class="pre">crontab</span></code> entries
    from all nodes by running <code class="docutils literal"><span class="pre">crontab</span> <span class="pre">-e</span></code> and removing the <code class="docutils literal"><span class="pre">&#64;reboot</span></code>
    lines.</p>
    </li>
    </ol>
    </div>
    <div class="section" id="aen-server">
    <h2>AEN Server<a class="headerlink" href="#aen-server" title="Permalink to this headline">¶</a></h2>
    <p><strong>NOTE:</strong> If you are using LDAP-based authentication, you need to backup
    the configuration file:</p>
    <p><code class="docutils literal"><span class="pre">/opt/wakari/wakari-server/etc/wakari/wk-server-config.json</span></code></p>
    <p>And then after the <em>Server</em> has been updated, copy it back in place. The
    current update process will overwrite this file. This is a known issue
    scheduled to be resolved in an upcoming release.</p>
    <p>The following operations are all done on the <em>Server</em> host.</p>
    <ol class="arabic">
    <li><p class="first">To take advantage of the new search capabilities, install
    ElasticSearch and a Java Runtime Environment (JRE 8).</p>
    <ul class="simple">
    <li><a class="reference external" href="https://www.elastic.co/downloads/elasticsearch">ElasticSearch</a></li>
    <li><a class="reference external" href="http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html">Oracle JRE 8 for
    Linux-64</a></li>
    </ul>
    <p>Stop the ElasticSearch service:</p>
    <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">service</span> <span class="n">elasticsearch</span> <span class="n">stop</span>
    </pre></div>
    </div>
    <p>and remove any previous index (if exist) with:</p>
    <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">rm</span> <span class="o">-</span><span class="n">rf</span> <span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">lib</span><span class="o">/</span><span class="n">elasticsearch</span><span class="o">/*</span>
    </pre></div>
    </div>
    </li>
    <li><p class="first">Ensure that Anaconda Enterprise Notebooks administrative account
    <code class="docutils literal"><span class="pre">wakari</span></code> owns all files in the <em>Server</em> installation, by running
    the following as <code class="docutils literal"><span class="pre">root</span></code></p>
    <div class="highlight-default"><div class="highlight"><pre><span></span>chown -R $AEN_SRVC_ACCT:$AEN_SRVC_GRP /opt/wakari/miniconda /opt/wakari/wakari-server
    </pre></div>
    </div>
    </li>
    <li><p class="first">Update the <em>Server</em>:</p>
    <div class="highlight-default"><div class="highlight"><pre><span></span>pushd /tmp
    wget http://j.mp/aen-server-update-4_0_0

    sudo -u $AEN_SRVC_ACCT /opt/wakari/miniconda/bin/conda install \
                     -p /opt/wakari/wakari-server          \
                     --file aen-server-update-4_0_0

    sudo -u $AEN_SRVC_ACCT /opt/wakari/miniconda/bin/conda install \
                     -p /opt/wakari/wakari-server          \
                     --no-deps                             \
                     wakari-enterprise-server-conf-update=2.0.0
    popd
    </pre></div>
    </div>
    </li>
    <li><p class="first">Fix file ownership and permissions, by running the following as
    <code class="docutils literal"><span class="pre">root</span></code></p>
    <div class="highlight-default"><div class="highlight"><pre><span></span>chown -R $AEN_SRVC_ACCT:$AEN_SRVC_GRP /opt/wakari/miniconda /opt/wakari/wakari-server
    chmod -R a+rX  /opt/wakari/miniconda
    chmod -R o-w   /opt/wakari/miniconda
    chmod -R go+rX /opt/wakari/wakari-server
    chmod -R o-rwx /opt/wakari/wakari-server
    chmod    o+rX  /opt/wakari/wakari-server
    chmod -R o+rX  /opt/wakari/wakari-server/share
    </pre></div>
    </div>
    </li>
    <li><p class="first">Start ElasticSearch:</p>
    <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">service</span> <span class="n">elasticsearch</span> <span class="n">start</span>
    </pre></div>
    </div>
    <p>Or, if you do <em>not</em> want to use the search features, edit your
    server&#8217;s <code class="docutils literal"><span class="pre">config.json</span></code>:</p>
    <div class="highlight-default"><div class="highlight"><pre><span></span><span class="o">/</span><span class="n">opt</span><span class="o">/</span><span class="n">wakari</span><span class="o">/</span><span class="n">wakari</span><span class="o">-</span><span class="n">server</span><span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">wakari</span><span class="o">/</span><span class="n">config</span><span class="o">.</span><span class="n">json</span>
    </pre></div>
    </div>
    <p>adding the line item: <code class="docutils literal"><span class="pre">&quot;SEARCH_ENABLED&quot;:</span> <span class="pre">false</span></code>.</p>
    </li>
    <li><p class="first">Start the Server:</p>
    <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">service</span> <span class="n">wakari</span><span class="o">-</span><span class="n">server</span> <span class="n">start</span>
    </pre></div>
    </div>
    </li>
    <li><p class="first">Check that the Server is running properly:</p>
    <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">service</span> <span class="n">wakari</span><span class="o">-</span><span class="n">server</span> <span class="n">status</span>
    </pre></div>
    </div>
    </li>
    <li><p class="first">Finally, use your web browser to connect to AEN Server, using the
    correct protocol (<em>http</em> or <em>https</em>), hostname, and port number.</p>
    </li>
    </ol>
    </div>
    <div class="section" id="aen-gateway">
    <h2>AEN Gateway<a class="headerlink" href="#aen-gateway" title="Permalink to this headline">¶</a></h2>
    <p>The following operations are all done on <strong>each</strong> <em>Gateway</em> host.</p>
    <ol class="arabic">
    <li><p class="first">Ensure that Anaconda Enterprise Notebooks administrative account
    <code class="docutils literal"><span class="pre">wakari</span></code> owns all files in the <em>Gateway</em> installation, by running
    the following as <code class="docutils literal"><span class="pre">root</span></code></p>
    <div class="highlight-default"><div class="highlight"><pre><span></span>chown -R $AEN_SRVC_ACCT:$AEN_SRVC_GRP /opt/wakari/miniconda /opt/wakari/wakari-gateway
    </pre></div>
    </div>
    </li>
    <li><p class="first">Update the <em>Gateway</em>:</p>
    <div class="highlight-default"><div class="highlight"><pre><span></span>pushd /tmp
    wget http://j.mp/aen-gateway-update-4_0_0

    sudo -u $AEN_SRVC_ACCT /opt/wakari/miniconda/bin/conda install \
                     -p /opt/wakari/wakari-gateway         \
                     --file aen-gateway-update-4_0_0

    sudo -u $AEN_SRVC_ACCT /opt/wakari/miniconda/bin/conda install \
                     -p /opt/wakari/wakari-gateway         \
                     --no-deps                             \
                     wakari-enterprise-gateway-conf-update=2.0.0
    popd
    </pre></div>
    </div>
    </li>
    <li><p class="first">Fix file ownership and permissions, by running the following as
    <code class="docutils literal"><span class="pre">root</span></code></p>
    <div class="highlight-default"><div class="highlight"><pre><span></span>chown -R $AEN_SRVC_ACCT:$AEN_SRVC_GRP /opt/wakari/miniconda /opt/wakari/wakari-gateway
    chmod -R a+rX /opt/wakari/miniconda
    chmod -R o-w  /opt/wakari/miniconda
    chmod -R go+rX /opt/wakari/wakari-gateway
    chmod -R o-rwx  /opt/wakari/wakari-gateway
    </pre></div>
    </div>
    </li>
    <li><p class="first">Start the <em>Gateway</em>:</p>
    <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">service</span> <span class="n">wakari</span><span class="o">-</span><span class="n">gateway</span> <span class="n">start</span>
    </pre></div>
    </div>
    </li>
    <li><p class="first">Finally, use your web browser to connect to the <em>Gateway</em>, using the
    correct protocol (<em>http</em> or <em>https</em>), hostname, and port number.</p>
    </li>
    </ol>
    </div>
    <div class="section" id="aen-compute">
    <h2>AEN Compute<a class="headerlink" href="#aen-compute" title="Permalink to this headline">¶</a></h2>
    <p>The following operations are all done on <strong>each</strong> host where an AEN
    Compute service is running.</p>
    <ol class="arabic">
    <li><p class="first">Check if there is any <code class="docutils literal"><span class="pre">wakari-indexer</span></code> processes running with:</p>
    <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">ps</span> <span class="n">aux</span> <span class="o">|</span> <span class="n">grep</span> <span class="n">indexer</span>
    </pre></div>
    </div>
    <p>And terminate any remaining <code class="docutils literal"><span class="pre">wakari-indexer</span></code> processes, if you
    find them, with:</p>
    <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">killall</span> <span class="n">wakari</span><span class="o">-</span><span class="n">indexer</span>
    </pre></div>
    </div>
    </li>
    <li><p class="first">Ensure that the AEN administrative account <code class="docutils literal"><span class="pre">wakari</span></code> owns all files
    in the compute installation, by running the following as <code class="docutils literal"><span class="pre">root</span></code>:</p>
    <div class="highlight-default"><div class="highlight"><pre><span></span>chown -R $AEN_SRVC_ACCT:$AEN_SRVC_GRP /opt/wakari/anaconda
    chown -R $AEN_SRVC_ACCT:$AEN_SRVC_GRP /opt/wakari/wakari-compute/{bin,conda-meta,config,etc}
    chown -R $AEN_SRVC_ACCT:$AEN_SRVC_GRP /opt/wakari/wakari-compute/{include,lib,lib64,pkgs,share,ssl}
    </pre></div>
    </div>
    </li>
    <li><p class="first">Verify the contents of <code class="docutils literal"><span class="pre">/opt/wakari/anaconda/.condarc</span></code>, as
    described <a class="reference internal" href="#aen-installation-update-preflight"><span class="std std-ref">above</span></a>. In addition, it should contain the
    following entries (and possibly others):</p>
    <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">channels</span><span class="p">:</span>
      <span class="o">-</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">conda</span><span class="o">.</span><span class="n">anaconda</span><span class="o">.</span><span class="n">org</span><span class="o">/</span><span class="n">wakari</span>
      <span class="o">-</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">conda</span><span class="o">.</span><span class="n">anaconda</span><span class="o">.</span><span class="n">org</span><span class="o">/</span><span class="n">t</span><span class="o">/&lt;</span><span class="n">TOKEN</span><span class="o">&gt;/</span><span class="n">anaconda</span><span class="o">-</span><span class="n">nb</span><span class="o">-</span><span class="n">extensions</span>
      <span class="o">-</span> <span class="n">r</span>
      <span class="o">-</span> <span class="n">defaults</span>

    <span class="n">create_default_packages</span><span class="p">:</span>
      <span class="o">-</span> <span class="n">python</span>
      <span class="o">-</span> <span class="n">ipython</span><span class="o">-</span><span class="n">we</span>
      <span class="o">-</span> <span class="n">pip</span>
    </pre></div>
    </div>
    </li>
    </ol>
    <p><strong>NOTE:</strong> Contact our sales representatives to get your <code class="docutils literal"><span class="pre">&lt;TOKEN&gt;</span></code> for
    the Anaconda channel referenced above.</p>
    <ol class="arabic">
    <li><p class="first">Install the <code class="docutils literal"><span class="pre">R</span></code> dependencies:</p>
    <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">yum</span> <span class="n">groupinstall</span> <span class="s2">&quot;X Window System&quot;</span> <span class="o">-</span><span class="n">y</span>
    </pre></div>
    </div>
    <p>Note: The <code class="docutils literal"><span class="pre">groupinstall</span></code> should be enough to cover all the R needs
    but in case you have problems with R-based plotting in the notebook,
    please also run:</p>
    <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">yum</span> <span class="n">install</span> <span class="n">libXrender</span> <span class="n">libXext</span> <span class="n">libSM</span> <span class="o">-</span><span class="n">y</span>
    </pre></div>
    </div>
    </li>
    <li><p class="first">Update the <em>Compute</em> service:</p>
    <div class="highlight-default"><div class="highlight"><pre><span></span>sudo -u $AEN_SRVC_ACCT /opt/wakari/anaconda/bin/conda install \
                     -p /opt/wakari/anaconda/             \
                     conda=3.19.3 conda-env=2.4.5

    pushd /tmp
    wget http://j.mp/aen-compute-update-4_0_0
    wget http://j.mp/aen-anaconda-update-4_0_0

    sudo -u $AEN_SRVC_ACCT /opt/wakari/anaconda/bin/conda install \
                     -p /opt/wakari/wakari-compute        \
                     --file aen-compute-update-4_0_0

    sudo -u $AEN_SRVC_ACCT /opt/wakari/anaconda/bin/conda install \
                     --no-deps                            \
                     -p /opt/wakari/wakari-compute        \
                     wakari-enterprise-compute-conf-update=2.0.0

    sudo -u $AEN_SRVC_ACCT /opt/wakari/anaconda/bin/conda install \
                     -p /opt/wakari/anaconda              \
                     --file aen-anaconda-update-4_0_0
    popd
    </pre></div>
    </div>
    </li>
    <li><p class="first">Fix file ownership and permissions, by running the following as
    <code class="docutils literal"><span class="pre">root</span></code></p>
    <div class="highlight-default"><div class="highlight"><pre><span></span>chown -R $AEN_SRVC_ACCT:$AEN_SRVC_GRP /opt/wakari/anaconda
    chown -R $AEN_SRVC_ACCT:$AEN_SRVC_GRP /opt/wakari/wakari-compute/{bin,conda-meta,config,etc}
    chown -R $AEN_SRVC_ACCT:$AEN_SRVC_GRP /opt/wakari/wakari-compute/{include,lib,lib64,pkgs,share,ssl}
    chmod -R a+rX /opt/wakari/anaconda
    chmod -R o-w  /opt/wakari/anaconda
    </pre></div>
    </div>
    </li>
    <li><p class="first">Initialize the root environment to prime the package cache</p>
    <div class="highlight-default"><div class="highlight"><pre><span></span>sudo -u $AEN_SRVC_ACCT /opt/wakari/anaconda/bin/conda create \
                     -p /opt/wakari/testenv \
                     --clone root

    rm -rf /opt/wakari/testenv
    </pre></div>
    </div>
    </li>
    <li><p class="first">Pin conda to version 3.19.3 (and compatible conda-env) to avoid
    automatic self-updates on the anaconda environment</p>
    <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">echo</span> <span class="o">-</span><span class="n">e</span> <span class="s2">&quot;conda ==3.19.3</span><span class="se">\n</span><span class="s2">conda-env ==2.4.5&quot;</span> <span class="o">&gt;</span> \
              <span class="o">/</span><span class="n">opt</span><span class="o">/</span><span class="n">wakari</span><span class="o">/</span><span class="n">anaconda</span><span class="o">/</span><span class="n">conda</span><span class="o">-</span><span class="n">meta</span><span class="o">/</span><span class="n">pinned</span>
    </pre></div>
    </div>
    </li>
    <li><p class="first">With the latest Anaconda Enterprise Notebooks release (4.0.0) we have
    introduced new features such as Functional IDs and no root access
    during normal operations. You <strong>must</strong> execute the
    <code class="docutils literal"><span class="pre">upgrade\_400.sh</span></code> script to make your projects compatible with the new codebase:</p>
    <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">pushd</span> <span class="o">/</span><span class="n">tmp</span>
    <span class="n">wget</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">j</span><span class="o">.</span><span class="n">mp</span><span class="o">/</span><span class="n">upgrade_400</span>
    <span class="n">chmod</span> <span class="n">a</span><span class="o">+</span><span class="n">x</span> <span class="n">upgrade_400</span><span class="o">.</span><span class="n">sh</span>
    <span class="o">./</span><span class="n">upgrade_400</span><span class="o">.</span><span class="n">sh</span>
    <span class="n">popd</span>
    </pre></div>
    </div>
    </li>
    <li><p class="first">Start the <em>Compute</em> service:</p>
    <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">service</span> <span class="n">wakari</span><span class="o">-</span><span class="n">compute</span> <span class="n">start</span>
    </pre></div>
    </div>
    </li>
    <li><p class="first">Verify the <em>Compute</em> service is running properly:</p>
    <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">ps</span> <span class="n">auxef</span> <span class="o">|</span> <span class="n">grep</span> <span class="nb">bin</span><span class="o">/</span><span class="n">wk</span><span class="o">-</span><span class="n">compute</span>
    <span class="n">service</span> <span class="n">wakari</span><span class="o">-</span><span class="n">compute</span> <span class="n">status</span>
    </pre></div>
    </div>
    </li>
    <li><p class="first">Versions of Anaconda Enterprise Notebooks prior to 0.10.0 used
    ipython version 2.2.0. If you detect that version with
    <code class="docutils literal"><span class="pre">conda</span> <span class="pre">list</span></code>, you should:</p>
    <div class="highlight-default"><div class="highlight"><pre><span></span>sudo -u $AEN_SRVC_ACCT /opt/wakari/anaconda/bin/conda remove ipython
    sudo -u $AEN_SRVC_ACCT /opt/wakari/anaconda/bin/conda install ipython-we --force
    sudo -u $AEN_SRVC_ACCT /opt/wakari/wakari-compute/bin/conda remove ipython
    sudo -u $AEN_SRVC_ACCT /opt/wakari/wakari-compute/bin/conda install ipython-we --force
    </pre></div>
    </div>
    <p><strong>NOTE:</strong> Existing AEN <em>Projects</em> may have their own Conda
    environments. If so, those environments are not automatically updated
    by this process. In this case, updates can be done by the users
    themselves with the following commands:</p>
    <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">conda</span> <span class="n">remove</span> <span class="n">ipython</span>
    <span class="n">conda</span> <span class="n">install</span> <span class="n">ipython</span><span class="o">-</span><span class="n">we</span> <span class="o">--</span><span class="n">force</span>
    </pre></div>
    </div>
    <p>Alternatively, an administrator can update the users conda
    environments, with the following commands:</p>
    <div class="highlight-default"><div class="highlight"><pre><span></span># Update the conda environments for the user $USERNAME working in AEN Project $PROJECTNAME
    source activate /projects/$USERNAME/$PROJECTNAME/envs/default
    sudo -u $USERNAME conda remove ipython
    sudo -u $USERNAME conda install ipython --force
    source deactivate
    </pre></div>
    </div>
    <p>If you need <code class="docutils literal"><span class="pre">R</span></code> in a pre-existing project, use the following
    command to install the needed <code class="docutils literal"><span class="pre">R</span></code> packages:</p>
    <div class="highlight-default"><div class="highlight"><pre><span></span>source activate /projects/$USERNAME/$PROJECTNAME/envs/default
    sudo -u $USERNAME conda install r-base r-essentials -c r
    source deactivate
    </pre></div>
    </div>
    <p><strong>NOTE:</strong> In order to start using the new jupyter extensions you&#8217;ll
    need to remove the <code class="docutils literal"><span class="pre">.jupyter_$USERNAME</span></code> and <code class="docutils literal"><span class="pre">.ipython_$USERNAME</span></code>
    folders.</p>
    </li>
    <li><p class="first">If you have a <a class="reference internal" href="../user/projects.html"><span class="doc">customized default
    environment</span></a>, you could update it
    depending of your users needs.</p>
    </li>
    </ol>
    <p><strong>NOTE:</strong> Updating the <code class="docutils literal"><span class="pre">default</span></code> environment at
    <code class="docutils literal"><span class="pre">/opt/wakari/anaconda/envs/default</span></code> do not automatically update the
    <code class="docutils literal"><span class="pre">default</span></code> environment in the users <strong>pre-existing</strong> projects. For
    pre-existing projects the update (if it is rquested) should be done on a
    per-user basis.</p>
    </div>
    <div class="section" id="project-permissions">
    <h2>Project Permissions<a class="headerlink" href="#project-permissions" title="Permalink to this headline">¶</a></h2>
    <p>Since version 0.10.0 Anaconda Enterprise Notebook uses POSIX.1e access control lists
    to manage shared content, rather than plain POSIX user groups. If you
    are upgrading from an AEN version earlier than 0.5.0, please execute the
    <a class="reference internal" href="scripts/project_permissions_py.html"><span class="doc">project_permissions.py</span></a> script on
    every Compute node:</p>
    <div class="highlight-default"><div class="highlight"><pre><span></span><span class="o">/</span><span class="n">opt</span><span class="o">/</span><span class="n">wakari</span><span class="o">/</span><span class="n">wakari</span><span class="o">-</span><span class="n">compute</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">python</span> <span class="n">project_permissions</span><span class="o">.</span><span class="n">py</span> <span class="o">/</span><span class="n">projects</span>
    </pre></div>
    </div>
    <p><strong>NOTE:</strong> In some deployments, the project directory may be different
    from <code class="docutils literal"><span class="pre">/projects</span></code>.</p>
    <p>Then, on the AEN <em>Server</em> host, run
    <a class="reference internal" href="scripts/repair_team_members_py.html"><span class="doc">repair_team_members.py</span></a>:</p>
    <div class="highlight-default"><div class="highlight"><pre><span></span><span class="o">/</span><span class="n">opt</span><span class="o">/</span><span class="n">wakari</span><span class="o">/</span><span class="n">wakari</span><span class="o">-</span><span class="n">server</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">python</span> <span class="n">repair_team_members</span><span class="o">.</span><span class="n">py</span>
    </pre></div>
    </div>
    <p>These scripts will read all the <em>Project</em> and <em>Team</em> information from
    the AEN database, and re-add individuals to all the <em>Project</em> on all
    <em>Compute</em> nodes.</p>
    <div class="toctree-wrapper compound">
    </div>
    </div>
