<!DOCTYPE html> <html lang='en'> <head> <title> FAQ - LEAP Platform Documentation </title> <meta content='width=device-width, initial-scale=1.0' name='viewport'> <meta charset='UTF-8'> <base href="" /> <style> body { background: #444; display: flex; flex-direction: row; padding: 10px; margin: 0px; } #sidebar { flex: 0 0 250px; background: white; margin-right: 10px; padding: 20px; } #sidebar ul { list-style-type: none; padding-left: 0px; margin: 0; } #sidebar li { padding: 4px } #sidebar li a { text-decoration: none } #sidebar li.active { background: #444 } #sidebar li.active a { color: white } #sidebar li.level1 { padding-left: 20px } #sidebar li.level2 { padding-left: 40px } #main { flex: 1 1 auto; background: white; padding: 20px; } #title-box { padding-bottom: 20px; border-bottom: 5px solid #eee; } #title-box h1 { margin-top: 0px; } pre { padding: 10px; background: #eef; } code { background: #eef; } table {border-collapse: collapse} table td { border: 1px solid #ccc; padding: 4px; vertical-align: top; } </style> </head> <body> <div id='sidebar'> <ul> <li class=''> <a href='../../../index.html'>Home</a> </li> <li class=' level0'> <a class='' href='../../guide.html'>Guide</a> </li> <li class=' level0'> <a class='' href='../../tutorials.html'>Tutorials</a> </li> <li class=' level0'> <a class='' href='../../services.html'>Services</a> </li> <li class=' level0'> <a class='' href='../../upgrading.html'>Upgrading</a> </li> <li class=' level0'> <a class='' href='../../troubleshooting.html'>Troubleshooting</a> </li> <li class='semi-active level0'> <a class='' href='../../details.html'>Details</a> </li> <li class='active level1'> <a class='' href='../faq.html'>FAQ</a> </li> <li class=' level1'> <a class='' href='../development.html'>Development</a> </li> <li class=' level1'> <a class='' href='../ports.html'>Ports</a> </li> <li class=' level1'> <a class='' href='../under-the-hood.html'>Under the hood</a> </li> </ul> </div> <div id='main'> <div id='title-box'> <h1>Frequently asked questions</h1> <div id='summary'>Frequently Asked Questions</div> </div> <div id='content-box'> <div id="TOC"><ol> <li> <a href="index.html#apt">APT</a> <ol> <li> <a href="index.html#what-do-i-do-when-unattended-upgrades-fail">What do I do when unattended upgrades fail?</a> </li> </ol> </li> <li> <a href="index.html#puppet">Puppet</a> <ol> <li> <a href="index.html#where-do-i-find-the-time-a-server-was-last-deployed">Where do i find the time a server was last deployed ?</a> </li> <li> <a href="index.html#what-resources-are-touched-by-puppetleap_platform-servicespackagesfiles-etc">What resources are touched by puppet/leap_platform (services/packages/files etc.) ?</a> </li> <li> <a href="index.html#how-can-i-customize-the-leap_platform-puppet-manifests">How can i customize the leap_platform puppet manifests ?</a> </li> </ol> </li> <li> <a href="index.html#facter">Facter</a> <ol> <li> <a href="index.html#how-can-i-see-custom-facts-distributed-by-leap_platform-on-a-node">How can i see custom facts distributed by leap_platform on a node ?</a> </li> </ol> </li> <li> <a href="index.html#etc">Etc</a> <ol> <li> <a href="index.html#how-do-i-change-the-domain-of-my-provider">How do i change the domain of my provider ?</a> </li> </ol> </li> </ol></div> <h1><a name="apt"></a>APT</h1> <h2><a name="what-do-i-do-when-unattended-upgrades-fail"></a>What do I do when unattended upgrades fail?</h2> <p>When you receive notification e-mails with a subject of ‘unattended-upgrades result for $machinename’, that means that some package couldn’t be automatically upgraded and needs manual interaction. The reasons vary, so you have to be careful. Most often you can simply login to the affected machine and run <code>apt-get dist-upgrade</code>.</p> <h1><a name="puppet"></a>Puppet</h1> <h2><a name="where-do-i-find-the-time-a-server-was-last-deployed"></a>Where do i find the time a server was last deployed ?</h2> <p>Run:</p> <pre><code>leap history FILTER </code></pre> <p>This will tail the log file <code>/var/log/leap/deploy-summary.log</code>.</p> <p>If that command fails, you can manually check the puppet state file on the node indicates the last puppetrun:</p> <pre><code>ls -la /var/lib/puppet/state/state.yaml </code></pre> <h2><a name="what-resources-are-touched-by-puppetleap_platform-servicespackagesfiles-etc"></a>What resources are touched by puppet/leap_platform (services/packages/files etc.) ?</h2> <p>Log into your server and issue:</p> <pre><code>grep -v '!ruby/sym' /var/lib/puppet/state/state.yaml | sed 's/\"//' | sort </code></pre> <h2><a name="how-can-i-customize-the-leap_platform-puppet-manifests"></a>How can i customize the leap_platform puppet manifests ?</h2> <p>You can create custom puppet modules under <code>files/puppet</code>. The custom puppet entry point is in class ‘custom’ which can be put into <code>files/puppet/modules/custom/manifests/init.pp</code>. This class gets automatically included by site_config::default, which is applied to all nodes.</p> <p>Of cause you can also create a different git branch and change whatever you want, if you are familiar wit git.</p> <h1><a name="facter"></a>Facter</h1> <h2><a name="how-can-i-see-custom-facts-distributed-by-leap_platform-on-a-node"></a>How can i see custom facts distributed by leap_platform on a node ?</h2> <p>On the server, export the FACTERLIB env. variable to include the path of the custom fact in question:</p> <pre><code>export FACTERLIB=/var/lib/puppet/lib/facter:/srv/leap/puppet/modules/stdlib/lib/facter/ facter </code></pre> <h1><a name="etc"></a>Etc</h1> <h2><a name="how-do-i-change-the-domain-of-my-provider"></a>How do i change the domain of my provider ?</h2> <ul> <li>First of all, you need to have access to the nameserver config of your new domain.</li> <li>Update domain in provider.json</li> <li>remove all ca and cert files: <code>rm files/cert/* files/ca/*</code></li> <li>create ca, csr and certs : <code>leap cert ca; leap cert csr; leap cert dh; leap cert update</code></li> <li>deploy</li> </ul> </div> </div> </body> </html>