====================================================
Parcels, Management Packs, and Installers (AER 2.30)
====================================================

.. raw:: html

    <p>Anaconda Repository provides a way to integrate with Cloudera Manager to
    distribute your Anaconda data science artifacts to your Hadoop cluster.
    You can create custom Cloudera Manager Parcels with the packages <em>you</em> want,
    including your own packages.</p>
    <p>NOTE: Creating custom parcels requires a local mirror of the Anaconda packages.
    Anaconda Repository will not connect to <code class="docutils literal"><span class="pre">http://repo.continuum.io</span></code> to fetch
    packages that are not available locally. See the
    <a class="reference internal" href="../admin/mirrors-anaconda-repository.html#mirroring-an-anaconda-repository"><span class="std std-ref">mirroring documentation</span></a>.</p>
    <p>To create a custom parcel, navigate to <code class="docutils literal"><span class="pre">/&lt;username&gt;/installers</span></code>. You can
    find this link in the dropdown menu, or in the <strong>Installers</strong> card on your
    homepage.</p>
    <p>Now select the &#8220;Create new installer&#8221; button. You can create a new installer
    either by selecting packages or by selecting an environment already in your
    account.</p>
    <div class="figure">
    <a class="reference internal image-reference" href="../../../_images/anaconda-repository/2.30/repo-parcels-create-installer.png"><img alt="../../../_images/anaconda-repository/2.30/repo-parcels-create-installer.png" src="../../../_images/anaconda-repository/2.30/repo-parcels-create-installer.png" style="width: 50%;" /></a>
    </div>
    <div class="line-block">
    <div class="line"><br /></div>
    </div>
    <p>Use only letters, numbers, dashes and underscores in the installer name.</p>
    <p>When creating a parcel, Anaconda Repository
    generates a file named <code class="docutils literal"><span class="pre">construct.yaml</span></code> which can be used with
    <a class="reference external" href="https://github.com/conda/constructor">conda constructor</a>, and a 64-bit Linux
    installer including the specified packages.</p>
    <div class="figure">
    <a class="reference internal image-reference" href="../../../_images/anaconda-repository/2.30/repo-parcels-parcel.png"><img alt="../../../_images/anaconda-repository/2.30/repo-parcels-parcel.png" src="../../../_images/anaconda-repository/2.30/repo-parcels-parcel.png" style="width: 50%;" /></a>
    </div>
    <div class="line-block">
    <div class="line"><br /></div>
    </div>
    <p>To create just the installer script, click <strong>Create installer</strong>; to create a
    parcel, click <strong>Create parcel</strong>.</p>
    <p>NOTE: By default, conda is not included in the custom parcel. If you wish to
    add additional packages to your environment, you can add those through the
    Anaconda Repository interface. If you wish to see the list of packages that
    are included in your custom parcel, the information is provided in
    <code class="docutils literal"><span class="pre">/opt/cloudera/parcels/&lt;PARCEL_NAME&gt;/meta/parcel.json</span></code>.</p>
    <p>To create an installer by selecting packages:</p>
    <div class="figure">
    <a class="reference internal image-reference" href="../../../_images/anaconda-repository/2.30/repo-parcels-installer-from-pkg.png"><img alt="../../../_images/anaconda-repository/2.30/repo-parcels-installer-from-pkg.png" src="../../../_images/anaconda-repository/2.30/repo-parcels-installer-from-pkg.png" style="width: 50%;" /></a>
    </div>
    <div class="line-block">
    <div class="line"><br /></div>
    </div>
    <ol class="arabic simple">
    <li>Click the Create from Packages tab.</li>
    <li>Enter the channels to fetch packages from into the Search for Channels box.
    Add each channel by clicking the green plus button next to the Search for
    Channels box. The <code class="docutils literal"><span class="pre">anaconda</span></code> user will be added by default.</li>
    <li>Enter the package names into the Search for Packages box. Add each package
    by clicking the green plus button next to the Search for Packages box.</li>
    <li>Set version requirements for each package with the drop down menus next to
    the package name.</li>
    <li>Click the green Create management pack button or the green Create parcel
    button or the green Create installer button.</li>
    </ol>
    <p>To create an installer from an environment:</p>
    <div class="figure">
    <a class="reference internal image-reference" href="../../../_images/anaconda-repository/2.30/repo-parcels-installer-from-env.png"><img alt="../../../_images/anaconda-repository/2.30/repo-parcels-installer-from-env.png" src="../../../_images/anaconda-repository/2.30/repo-parcels-installer-from-env.png" style="width: 50%;" /></a>
    </div>
    <div class="line-block">
    <div class="line"><br /></div>
    </div>
    <ol class="arabic simple">
    <li>Click the Create from Environment tab.</li>
    <li>Enter the environment name and click the green check mark button.</li>
    <li>Select the environment version from the drop-down menu next to the
    environment name.</li>
    <li>Click the green Create management pack button or the green Create parcel
    button or the green Create installer button.</li>
    </ol>
    <p>NOTE: The parcel is generated with the prefix of <code class="docutils literal"><span class="pre">/opt/cloudera/parcels/&lt;PARCEL_NAME&gt;</span></code>.
    This is the default location where activated parcels are loaded. If you are deploying parcels
    in a different directory, you can change this prefix with the <code class="docutils literal"><span class="pre">PARCELS_ROOT</span></code>
    <a class="reference internal" href="../admin/reference.html#parcels-root"><span class="std std-ref">configuration setting</span></a>.</p>
    <p>Once you have created a custom parcel, you can distribute it to your
    cluster by adding <code class="docutils literal"><span class="pre">http://&lt;repository</span> <span class="pre">ip&gt;:&lt;port&gt;/&lt;username&gt;/installers/parcels/</span></code> as a
    <a class="reference external" href="https://www.cloudera.com/documentation/enterprise/latest/topics/cm_ig_create_local_parcel_repo.html#concept_yxz_bxt_vm">Remote Parcel Repository URL</a>.
    Cloudera Manager will detect the parcels hosted on Anaconda Repository, and provide the
    option to <strong>Download</strong> and <strong>Distribute</strong> the parcels.</p>
    <p>By default, Anaconda Repository generates a parcel file for every
    <a class="reference external" href="https://github.com/cloudera/cm_ext/wiki/Parcel-distro-suffixes">compatible distribution</a>.
    You can customize which parcel distributions are created by configuring the <code class="docutils literal"><span class="pre">PARCEL_DISTRO_SUFFIXES</span></code>
    <a class="reference internal" href="../admin/reference.html#parcel-distro-suffixes"><span class="std std-ref">configuration setting</span></a>.</p>
    <p>NOTE: If you have configured <code class="docutils literal"><span class="pre">conda</span></code> via <code class="docutils literal"><span class="pre">~/.condarc</span></code> on your server for use of a proxy (for example, to mirror behind a proxy) you must
    disable proxying for the repository. See the
    <a class="reference external" href="http://conda.io/docs/config.html#configure-conda-for-use-behind-a-proxy-server-proxy-servers">conda documentation</a>
    for more information.</p>
    <p>For example:</p>
    <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">proxy_servers</span><span class="p">:</span>
        <span class="n">https</span><span class="p">:</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">proxy</span><span class="o">.</span><span class="n">corp</span><span class="o">.</span><span class="n">example</span><span class="o">.</span><span class="n">com</span>
        <span class="n">http</span><span class="p">:</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">proxy</span><span class="o">.</span><span class="n">corp</span><span class="o">.</span><span class="n">example</span><span class="o">.</span><span class="n">com</span>
        <span class="s1">&#39;http://&lt;repository ip&gt;&#39;</span><span class="p">:</span> <span class="n">false</span>
    </pre></div>
    </div>
