/dev/nullhttps://blog.devnu11.net/2022-08-01T12:20:00+02:00the other side of life.Calculate prometheus disk space2022-08-01T12:20:00+02:002022-08-01T12:20:00+02:00rmicheltag:blog.devnu11.net,2022-08-01:/2022/08/prometheus-storage-usage.html<h1>Calculate</h1>
<p>needed_disk_space = retention_time_seconds * ingested_samples_per_second * bytes_per_sample</p>
<p><a href="https://prometheus.io/docs/prometheus/latest/storage/#operational-aspects">Source</a></p>
<div class="highlight"><pre><span></span><code><span class="nt">30 days (secs)</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">2592000</span>
<span class="nt">ingested_samples_per_second</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">rate(prometheus_tsdb_head_samples_appended_total[2h])</span>
<span class="nt">bytes_per_sample</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">rate(prometheus_tsdb_compaction_chunk_size_bytes_sum[2h]) / rate(prometheus_tsdb_compaction_chunk_samples_sum[2h])</span>
</code></pre></div>
<h1>PromQL</h1>
<div class="highlight"><pre><span></span><code><span class="p">((</span><span class="w"> </span><span class="mi">30</span><span class="o">*</span><span class="mi">24</span><span class="o">*</span><span class="mi">60</span><span class="o">*</span><span class="mi">60</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">rate</span><span class="p">(</span><span class="n">prometheus_tsdb_head_samples_appended_total</span><span class="p">[</span><span class="mi">2</span><span class="n">h</span><span class="p">])</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">rate</span><span class="p">(</span><span class="n">prometheus_tsdb_compaction_chunk_size_bytes_sum</span><span class="p">[</span><span class="mi">2</span><span class="n">h</span><span class="p">])</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="n">rate</span><span class="p">(</span><span class="n">prometheus_tsdb_compaction_chunk_samples_sum</span><span class="p">[</span><span class="mi">2</span><span class="n">h</span><span class="p">])))</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">1024</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">1024</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">1024</span>
</code></pre></div>Enable PXE boot on Mellanox ConnectX2022-07-08T15:13:00+02:002022-07-08T15:13:00+02:00rmicheltag:blog.devnu11.net,2022-07-08:/2022/07/connectx-enable-pxe.html<h1>MFT Tool</h1>
<p>https://www.mellanox.com/downloads/MFT/mft-4.20.1-14-x86_64-deb.tgz</p>
<div class="highlight"><pre><span></span><code><span class="n">MD5SUM</span><span class="o">:</span><span class="w"> </span><span class="mi">097</span><span class="n">c0874bd33fbff2f7fd21699c843c5</span>
<span class="n">SHA256</span><span class="o">:</span><span class="w"> </span><span class="mi">4</span><span class="n">b1b4a8e2eba2369317c0e504ef09b1dc0c60119ddaead45fd26b0c36434635c</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code>wget<span class="w"> </span>https://www.mellanox.com/downloads/MFT/mft-4.20.1-14-x86_64-deb.tgz
tar<span class="w"> </span>zxvf<span class="w"> </span>mft-4.20.1-14-x86_64-deb.tgz
mft-*-deb/install.sh
</code></pre></div>
<h2>Enable UEFI and PXE boot</h2>
<div class="highlight"><pre><span></span><code>mst<span class="w"> </span>start
<span class="k">for</span><span class="w"> </span>card<span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="k">$(</span>ls …</code></pre></div><h1>MFT Tool</h1>
<p>https://www.mellanox.com/downloads/MFT/mft-4.20.1-14-x86_64-deb.tgz</p>
<div class="highlight"><pre><span></span><code><span class="n">MD5SUM</span><span class="o">:</span><span class="w"> </span><span class="mi">097</span><span class="n">c0874bd33fbff2f7fd21699c843c5</span>
<span class="n">SHA256</span><span class="o">:</span><span class="w"> </span><span class="mi">4</span><span class="n">b1b4a8e2eba2369317c0e504ef09b1dc0c60119ddaead45fd26b0c36434635c</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code>wget<span class="w"> </span>https://www.mellanox.com/downloads/MFT/mft-4.20.1-14-x86_64-deb.tgz
tar<span class="w"> </span>zxvf<span class="w"> </span>mft-4.20.1-14-x86_64-deb.tgz
mft-*-deb/install.sh
</code></pre></div>
<h2>Enable UEFI and PXE boot</h2>
<div class="highlight"><pre><span></span><code>mst<span class="w"> </span>start
<span class="k">for</span><span class="w"> </span>card<span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="k">$(</span>ls<span class="w"> </span>/dev/mst/*<span class="k">)</span><span class="p">;</span><span class="w"> </span><span class="k">do</span>
<span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="si">${</span><span class="nv">card</span><span class="si">}</span>
<span class="w"> </span>mlxconfig<span class="w"> </span>-d<span class="w"> </span><span class="si">${</span><span class="nv">card</span><span class="si">}</span><span class="w"> </span>-y<span class="w"> </span><span class="nb">set</span><span class="w"> </span><span class="nv">EXP_ROM_UEFI_x86_ENABLE</span><span class="o">=</span><span class="m">1</span>
<span class="w"> </span>mlxconfig<span class="w"> </span>-d<span class="w"> </span><span class="si">${</span><span class="nv">card</span><span class="si">}</span><span class="w"> </span>-y<span class="w"> </span><span class="nb">set</span><span class="w"> </span><span class="nv">EXP_ROM_PXE_ENABLE</span><span class="o">=</span><span class="m">1</span>
<span class="w"> </span>mlxconfig<span class="w"> </span>-d<span class="w"> </span><span class="si">${</span><span class="nv">card</span><span class="si">}</span><span class="w"> </span>q<span class="w"> </span><span class="p">|</span><span class="w"> </span>egrep<span class="w"> </span><span class="s2">"EXP_ROM"</span>
<span class="k">done</span>
</code></pre></div>ceph - down pgs after lost osd2020-08-19T15:13:00+02:002020-08-19T15:13:00+02:00rmicheltag:blog.devnu11.net,2020-08-19:/2020/08/ceph-lost-osd-with-pgs.html<h1>Initial situation / Issue</h1>
<ul>
<li>pool size = 1 (Don't ask why)</li>
<li>lost/crashed osd</li>
<li>pgs down/incomplete</li>
</ul>
<h1>Verify</h1>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>ceph<span class="w"> </span>pg<span class="w"> </span><id><span class="w"> </span>query
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="p">{</span>
<span class="w"> </span><span class="nt">"snap_trimq"</span><span class="p">:</span><span class="w"> </span><span class="s2">"[]"</span><span class="p">,</span>
<span class="w"> </span><span class="nt">"snap_trimq_len"</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span>
<span class="w"> </span><span class="nt">"state"</span><span class="p">:</span><span class="w"> </span><span class="s2">"active+clean"</span><span class="p">,</span>
<span class="w"> </span><span class="nt">"epoch"</span><span class="p">:</span><span class="w"> </span><span class="mi">348</span><span class="p">,</span>
<span class="w"> </span><span class="nt">"acting"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
<span class="w"> </span><span class="mi">87</span>
<span class="w"> </span><span class="p">],</span>
<span class="p">[</span><span class="err">...</span><span class="p">]</span>
<span class="w"> </span><span class="nt">"blocked"</span><span class="p">:</span><span class="w"> </span><span class="s2">"peering is blocked due to down osds"</span><span class="p">,</span>
<span class="w"> </span><span class="nt">"down_osds_we_would_probe"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
<span class="w"> </span><span class="mi">60</span><span class="p">],</span>
<span class="w"> </span><span class="nt">"peering_blocked_by"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
<span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nt">"osd"</span><span class="p">:</span><span class="w"> </span><span class="mi">60</span><span class="p">,</span>
<span class="w"> </span><span class="nt">"current_lost_at"</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span>
<span class="w"> </span><span class="nt">"comment"</span><span class="p">:</span><span class="w"> </span><span class="s2">"starting or marking this …</span></code></pre></div><h1>Initial situation / Issue</h1>
<ul>
<li>pool size = 1 (Don't ask why)</li>
<li>lost/crashed osd</li>
<li>pgs down/incomplete</li>
</ul>
<h1>Verify</h1>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>ceph<span class="w"> </span>pg<span class="w"> </span><id><span class="w"> </span>query
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="p">{</span>
<span class="w"> </span><span class="nt">"snap_trimq"</span><span class="p">:</span><span class="w"> </span><span class="s2">"[]"</span><span class="p">,</span>
<span class="w"> </span><span class="nt">"snap_trimq_len"</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span>
<span class="w"> </span><span class="nt">"state"</span><span class="p">:</span><span class="w"> </span><span class="s2">"active+clean"</span><span class="p">,</span>
<span class="w"> </span><span class="nt">"epoch"</span><span class="p">:</span><span class="w"> </span><span class="mi">348</span><span class="p">,</span>
<span class="w"> </span><span class="nt">"acting"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
<span class="w"> </span><span class="mi">87</span>
<span class="w"> </span><span class="p">],</span>
<span class="p">[</span><span class="err">...</span><span class="p">]</span>
<span class="w"> </span><span class="nt">"blocked"</span><span class="p">:</span><span class="w"> </span><span class="s2">"peering is blocked due to down osds"</span><span class="p">,</span>
<span class="w"> </span><span class="nt">"down_osds_we_would_probe"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
<span class="w"> </span><span class="mi">60</span><span class="p">],</span>
<span class="w"> </span><span class="nt">"peering_blocked_by"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
<span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nt">"osd"</span><span class="p">:</span><span class="w"> </span><span class="mi">60</span><span class="p">,</span>
<span class="w"> </span><span class="nt">"current_lost_at"</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span>
<span class="w"> </span><span class="nt">"comment"</span><span class="p">:</span><span class="w"> </span><span class="s2">"starting or marking this osd lost may let us proceed"</span>
<span class="w"> </span><span class="p">}</span>
<span class="w"> </span><span class="p">]</span>
<span class="p">[</span><span class="err">...</span><span class="p">]</span>
</code></pre></div>
<h1>Resolution</h1>
<p>Mark the missing osd as lost:</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>ceph<span class="w"> </span>osd<span class="w"> </span>lost<span class="w"> </span>osd.<id><span class="w"> </span>--yes-i-really-mean-it
</code></pre></div>
<p>You can <em>try</em> to create the pg:</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>ceph<span class="w"> </span>pg<span class="w"> </span>force-create-pg<span class="w"> </span><id>
</code></pre></div>
<p>But because the PG is already created, this will usually fail or have no effect.</p>
<p>In the meantime ceph already tries to start the PG on a new OSD - without success (PG is <code>incomplete</code>).
Therefore the faulty PG must be created/marked as an empty PG (<strong>data loss!</strong>)</p>
<div class="highlight"><pre><span></span><code>systemctl<span class="w"> </span>stop<span class="w"> </span>ceph-osd@87
ceph-objectstore-tool<span class="w"> </span>--data-path<span class="w"> </span>/var/lib/ceph/osd/ceph-87<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>--pgid<span class="w"> </span><id><span class="w"> </span>--op<span class="w"> </span>info
ceph-objectstore-tool<span class="w"> </span>--data-path<span class="w"> </span>/var/lib/ceph/osd/ceph-87<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>--pgid<span class="w"> </span><id><span class="w"> </span>--op<span class="w"> </span>mark-complete
systemctl<span class="w"> </span>start<span class="w"> </span>ceph-osd@87
</code></pre></div>
<h1>Root Cause</h1>
<p>The pool size is == 1.</p>ceph - logging into graylog2020-08-19T14:13:00+02:002020-08-19T14:13:00+02:00rmicheltag:blog.devnu11.net,2020-08-19:/2020/08/ceph-logging-graylog.html<h1>ceph logging into graylog</h1>
<p><strong>graylog.conf</strong></p>
<div class="highlight"><pre><span></span><code>rest_listen_uri = http://x.x.x.x:12901/
</code></pre></div>
<p><strong>/etc/ceph/ceph.conf</strong></p>
<div class="highlight"><pre><span></span><code>mon_cluster_log_to_graylog = true
mon_cluster_log_to_graylog_host = x.x.x.x
mon_cluster_log_to_graylog_port = 12201
</code></pre></div>ceph - rbd namespaces2019-10-14T20:25:00+02:002019-10-14T20:25:00+02:00rmicheltag:blog.devnu11.net,2019-10-14:/2019/10/ceph-rbd-namespaced.html<h1>Fun with rbd namespaces</h1>
<h2>cli</h2>
<div class="highlight"><pre><span></span><code><span class="c1"># rbd --namespace $namespace $command $pool/$image</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="c1"># rbd $command $pool/$namespace/$image</span>
</code></pre></div>
<h2>create</h2>
<div class="highlight"><pre><span></span><code><span class="c1"># rbd namespace ls --format=json</span>
<span class="o">[]</span>
<span class="c1"># rbd namespace create --namespace newns1</span>
<span class="c1"># rbd namespace ls --format=json</span>
<span class="o">[{</span><span class="s2">"name"</span>:<span class="s2">"newns1"</span><span class="o">}]</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="c1"># rbd create --namespace newns1 newrbd1 --size 1G</span>
<span class="c1"># rbd ls --long</span>
<span class="c1"># rbd --namespace newns1 ls --long</span>
NAME …</code></pre></div><h1>Fun with rbd namespaces</h1>
<h2>cli</h2>
<div class="highlight"><pre><span></span><code><span class="c1"># rbd --namespace $namespace $command $pool/$image</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="c1"># rbd $command $pool/$namespace/$image</span>
</code></pre></div>
<h2>create</h2>
<div class="highlight"><pre><span></span><code><span class="c1"># rbd namespace ls --format=json</span>
<span class="o">[]</span>
<span class="c1"># rbd namespace create --namespace newns1</span>
<span class="c1"># rbd namespace ls --format=json</span>
<span class="o">[{</span><span class="s2">"name"</span>:<span class="s2">"newns1"</span><span class="o">}]</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="c1"># rbd create --namespace newns1 newrbd1 --size 1G</span>
<span class="c1"># rbd ls --long</span>
<span class="c1"># rbd --namespace newns1 ls --long</span>
NAME<span class="w"> </span>SIZE<span class="w"> </span>PARENT<span class="w"> </span>FMT<span class="w"> </span>PROT<span class="w"> </span>LOCK
newrbd1<span class="w"> </span><span class="m">1</span><span class="w"> </span>GiB<span class="w"> </span><span class="m">2</span>
</code></pre></div>
<h2>rbd map on centos 7 (1810)</h2>
<div class="highlight"><pre><span></span><code><span class="c1"># rbd map --namespace newns1 newrbd1</span>
rbd:<span class="w"> </span>sysfs<span class="w"> </span>write<span class="w"> </span>failed
In<span class="w"> </span>some<span class="w"> </span>cases<span class="w"> </span>useful<span class="w"> </span>info<span class="w"> </span>is<span class="w"> </span>found<span class="w"> </span><span class="k">in</span><span class="w"> </span>syslog<span class="w"> </span>-<span class="w"> </span>try<span class="w"> </span><span class="s2">"dmesg | tail"</span>.
rbd:<span class="w"> </span>map<span class="w"> </span>failed:<span class="w"> </span><span class="o">(</span><span class="m">22</span><span class="o">)</span><span class="w"> </span>Invalid<span class="w"> </span>argument
<span class="c1"># dmesg | tail</span>
<span class="o">[</span>...<span class="o">]</span>
<span class="o">[</span><span class="m">604832</span>.607051<span class="o">]</span><span class="w"> </span>libceph:<span class="w"> </span>bad<span class="w"> </span>option<span class="w"> </span>at<span class="w"> </span><span class="s1">'_pool_ns=newns1'</span>
</code></pre></div>
<p>To map a rbd (+ namespace) you need a kernel >= <a href="https://github.com/torvalds/linux/commit/b26c047b940003295d3896b7f633a66aab95bebd">4.19</a>.</p>
<h3>with > 5.0 kernel (<a href="https://www.elrepo.org">elrepo</a>)</h3>
<div class="highlight"><pre><span></span><code><span class="c1"># rbd info rbd/newns1/newrbd1</span>
rbd<span class="w"> </span>image<span class="w"> </span><span class="s1">'newrbd1'</span>:
<span class="w"> </span>size<span class="w"> </span><span class="m">1</span><span class="w"> </span>GiB<span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="m">256</span><span class="w"> </span>objects
<span class="w"> </span>order<span class="w"> </span><span class="m">22</span><span class="w"> </span><span class="o">(</span><span class="m">4</span><span class="w"> </span>MiB<span class="w"> </span>objects<span class="o">)</span>
<span class="w"> </span>snapshot_count:<span class="w"> </span><span class="m">0</span>
<span class="w"> </span>id:<span class="w"> </span>198af95bfe170
<span class="w"> </span>block_name_prefix:<span class="w"> </span>rbd_data.198af95bfe170
<span class="w"> </span>format:<span class="w"> </span><span class="m">2</span>
<span class="w"> </span>features:<span class="w"> </span>layering,<span class="w"> </span>exclusive-lock,<span class="w"> </span>object-map,<span class="w"> </span>fast-diff,<span class="w"> </span>deep-flatten
<span class="w"> </span>op_features:
<span class="w"> </span>flags:
<span class="w"> </span>create_timestamp:<span class="w"> </span>Mon<span class="w"> </span>Oct<span class="w"> </span><span class="m">14</span><span class="w"> </span><span class="m">20</span>:46:48<span class="w"> </span><span class="m">2019</span>
<span class="w"> </span>access_timestamp:<span class="w"> </span>Mon<span class="w"> </span>Oct<span class="w"> </span><span class="m">14</span><span class="w"> </span><span class="m">20</span>:46:48<span class="w"> </span><span class="m">2019</span>
<span class="w"> </span>modify_timestamp:<span class="w"> </span>Mon<span class="w"> </span>Oct<span class="w"> </span><span class="m">14</span><span class="w"> </span><span class="m">20</span>:46:48<span class="w"> </span><span class="m">2019</span>
<span class="c1"># rbd map rbd/newns1/newrbd1</span>
/dev/rbd0
<span class="c1"># rbd showmapped</span>
id<span class="w"> </span>pool<span class="w"> </span>namespace<span class="w"> </span>image<span class="w"> </span>snap<span class="w"> </span>device
<span class="m">0</span><span class="w"> </span>rbd<span class="w"> </span>newns1<span class="w"> </span>newrbd1<span class="w"> </span>-<span class="w"> </span>/dev/rbd0
<span class="c1"># uname -a</span>
Linux<span class="w"> </span>ceph-test1<span class="w"> </span><span class="m">5</span>.3.6-1.el7.elrepo.x86_64<span class="w"> </span><span class="c1">#1 SMP Fri Oct 11 17:24:39 EDT 2019 x86_64 x86_64 x86_64 GNU/Linux</span>
</code></pre></div>
<h2>cephx</h2>
<div class="highlight"><pre><span></span><code><span class="c1"># ceph auth get-or-create client.$name \</span>
<span class="w"> </span>mon<span class="w"> </span><span class="s1">'profile rbd'</span><span class="w"> </span><span class="se">\</span>
<span class="w"> </span>osd<span class="w"> </span><span class="s1">'profile rbd namespace=$namespace'</span>
</code></pre></div>
<p>and go:</p>
<div class="highlight"><pre><span></span><code><span class="c1"># ls /etc/ceph/ceph.client.$name.keyring</span>
/etc/ceph/ceph.client.<span class="nv">$name</span>.keyring
<span class="c1"># rbd -n client.$name ls</span>
<span class="m">2019</span>-10-14<span class="w"> </span><span class="m">21</span>:49:41.227<span class="w"> </span>7efceff6ab00<span class="w"> </span>-1<span class="w"> </span>librbd::api::Image:<span class="w"> </span>list_images:<span class="w"> </span>error<span class="w"> </span>listing<span class="w"> </span>v1<span class="w"> </span>images:<span class="w"> </span><span class="o">(</span><span class="m">1</span><span class="o">)</span><span class="w"> </span>Operation<span class="w"> </span>not<span class="w"> </span>permitted
rbd:<span class="w"> </span>listing<span class="w"> </span>images<span class="w"> </span>failed:<span class="w"> </span><span class="o">(</span><span class="m">1</span><span class="o">)</span><span class="w"> </span>Operation<span class="w"> </span>not<span class="w"> </span>permitted
<span class="c1"># rbd -n client.$name ls --namespace=newns1</span>
newrbd1
</code></pre></div>gpg - export all (private-)keys2019-05-04T09:22:00+02:002019-05-04T09:22:00+02:00rmicheltag:blog.devnu11.net,2019-05-04:/2019/05/export-all-gpg-private-keys.html<h1>GPG export</h1>
<div class="highlight"><pre><span></span><code><span class="k">for</span><span class="w"> </span>keyid<span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="k">$(</span><span class="w"> </span>gpg<span class="w"> </span>-K<span class="w"> </span>--with-colons<span class="w"> </span><span class="p">|</span><span class="w"> </span>grep<span class="w"> </span>^sec<span class="w"> </span><span class="p">|</span><span class="w"> </span>cut<span class="w"> </span>-d:<span class="w"> </span>-f5<span class="w"> </span><span class="k">)</span><span class="p">;</span><span class="w"> </span><span class="k">do</span><span class="w"> </span><span class="se">\</span>
<span class="w"> </span><span class="o">[[</span><span class="w"> </span>-d<span class="w"> </span>~/.gnupg/export<span class="w"> </span><span class="o">]]</span><span class="w"> </span><span class="o">||</span><span class="w"> </span>mkdir<span class="w"> </span>~/.gnupg/export<span class="p">;</span><span class="w"> </span><span class="se">\</span>
<span class="w"> </span>gpg<span class="w"> </span>--export<span class="w"> </span>-a<span class="w"> </span>--export-options<span class="w"> </span>export-minimal<span class="w"> </span>--output<span class="w"> </span>~/.gnupg/export/<span class="si">${</span><span class="nv">keyid</span><span class="si">}</span>.pub<span class="w"> </span><span class="nv">$keyid</span><span class="p">;</span><span class="w"> </span><span class="se">\</span>
<span class="w"> </span>gpg<span class="w"> </span>--export-secret-keys<span class="w"> </span>-a<span class="w"> </span>--output<span class="w"> </span>~/.gnupg/export/<span class="si">${</span><span class="nv">keyid</span><span class="si">}</span>.key<span class="w"> </span><span class="nv">$keyid</span><span class="p">;</span>
<span class="k">done</span>
</code></pre></div>
<p>For a public key without signatures use <code>--export-options export-minimal …</code></p><h1>GPG export</h1>
<div class="highlight"><pre><span></span><code><span class="k">for</span><span class="w"> </span>keyid<span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="k">$(</span><span class="w"> </span>gpg<span class="w"> </span>-K<span class="w"> </span>--with-colons<span class="w"> </span><span class="p">|</span><span class="w"> </span>grep<span class="w"> </span>^sec<span class="w"> </span><span class="p">|</span><span class="w"> </span>cut<span class="w"> </span>-d:<span class="w"> </span>-f5<span class="w"> </span><span class="k">)</span><span class="p">;</span><span class="w"> </span><span class="k">do</span><span class="w"> </span><span class="se">\</span>
<span class="w"> </span><span class="o">[[</span><span class="w"> </span>-d<span class="w"> </span>~/.gnupg/export<span class="w"> </span><span class="o">]]</span><span class="w"> </span><span class="o">||</span><span class="w"> </span>mkdir<span class="w"> </span>~/.gnupg/export<span class="p">;</span><span class="w"> </span><span class="se">\</span>
<span class="w"> </span>gpg<span class="w"> </span>--export<span class="w"> </span>-a<span class="w"> </span>--export-options<span class="w"> </span>export-minimal<span class="w"> </span>--output<span class="w"> </span>~/.gnupg/export/<span class="si">${</span><span class="nv">keyid</span><span class="si">}</span>.pub<span class="w"> </span><span class="nv">$keyid</span><span class="p">;</span><span class="w"> </span><span class="se">\</span>
<span class="w"> </span>gpg<span class="w"> </span>--export-secret-keys<span class="w"> </span>-a<span class="w"> </span>--output<span class="w"> </span>~/.gnupg/export/<span class="si">${</span><span class="nv">keyid</span><span class="si">}</span>.key<span class="w"> </span><span class="nv">$keyid</span><span class="p">;</span>
<span class="k">done</span>
</code></pre></div>
<p>For a public key without signatures use <code>--export-options export-minimal</code>!</p>cryptsetup - remote unlocking over ssh2019-05-03T11:43:00+02:002019-05-03T11:43:00+02:00rmicheltag:blog.devnu11.net,2019-05-03:/2019/05/cryptsetup-remote-unlocking-over-ssh.html<h1>Notes</h1>
<p>Only vaild for Ubuntu/Debian!</p>
<h1>Package(s)</h1>
<ul>
<li><code>dropbear-initramfs</code></li>
</ul>
<h1>Configuration</h1>
<h2>ip config</h2>
<div class="highlight"><pre><span></span><code><span class="c1"># egrep "(DEVICE|IP)=" /etc/initramfs-tools/initramfs.conf </span>
<span class="nv">DEVICE</span><span class="o">=</span>enp3s0f0
<span class="nv">IP</span><span class="o">=</span><span class="m">10</span>.12.13.11::10.12.13.1:255.255.255.0::enp3s0f0:off
</code></pre></div>
<div class="highlight"><pre><span></span><code>IP=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:
<device>:<autoconf>:<dns0-ip>:<dns1-ip>:<ntp0-ip>
</code></pre></div>
<h2>ssh-keys</h2>
<div class="highlight"><pre><span></span><code><span class="c1"># cat /etc …</span></code></pre></div><h1>Notes</h1>
<p>Only vaild for Ubuntu/Debian!</p>
<h1>Package(s)</h1>
<ul>
<li><code>dropbear-initramfs</code></li>
</ul>
<h1>Configuration</h1>
<h2>ip config</h2>
<div class="highlight"><pre><span></span><code><span class="c1"># egrep "(DEVICE|IP)=" /etc/initramfs-tools/initramfs.conf </span>
<span class="nv">DEVICE</span><span class="o">=</span>enp3s0f0
<span class="nv">IP</span><span class="o">=</span><span class="m">10</span>.12.13.11::10.12.13.1:255.255.255.0::enp3s0f0:off
</code></pre></div>
<div class="highlight"><pre><span></span><code>IP=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:
<device>:<autoconf>:<dns0-ip>:<dns1-ip>:<ntp0-ip>
</code></pre></div>
<h2>ssh-keys</h2>
<div class="highlight"><pre><span></span><code><span class="c1"># cat /etc/dropbear-initramfs/authorized_keys</span>
ssh-rsa<span class="w"> </span>AAAAB3NzaC1yc2EAAA.....
</code></pre></div>
<h2>initrd</h2>
<div class="highlight"><pre><span></span><code><span class="c1"># update-initramfs -u</span>
</code></pre></div>
<h1>Notes</h1>
<p>see <code>nfsroot.txt</code> for <a href="https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt" target="_blank">more</a></p>Quickstart guide with kolla-ansible (for rocky)2019-02-15T22:48:00+01:002019-02-15T22:48:00+01:00rmicheltag:blog.devnu11.net,2019-02-15:/2019/02/quickstart-with-kolla-ansible.html<h1>Requirements</h1>
<ul>
<li><code>kolla-ansible</code> (testet with 7.0.1)<ul>
<li><a href="https://pypi.org/project/kolla-ansible/#history">kolla-ansible @ pypi</a></li>
</ul>
</li>
<li><code>ansible</code> (testet with 2.6.13)</li>
<li>epel-release (for centos)</li>
<li><code>python-pip</code></li>
</ul>
<p>And some magic:</p>
<ul>
<li>vagrant</li>
<li>vagrant-libvirt plugin</li>
<li>vagrant <a href="https://blog.devnu11.net/extra/kolla-ansible-quickstart.tar.gz">config</a></li>
</ul>
<h1>Quickstart</h1>
<p><strong><em>We will run all commands on our admin-node (<code>vagrant ssh kolla-admin</code>)</em></strong></p>
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>yum<span class="w"> </span>install<span class="w"> </span>-y<span class="w"> </span>epel-release
sudo<span class="w"> </span>yum<span class="w"> </span>install<span class="w"> </span>-y<span class="w"> </span>python2-pip
sudo …</code></pre></div><h1>Requirements</h1>
<ul>
<li><code>kolla-ansible</code> (testet with 7.0.1)<ul>
<li><a href="https://pypi.org/project/kolla-ansible/#history">kolla-ansible @ pypi</a></li>
</ul>
</li>
<li><code>ansible</code> (testet with 2.6.13)</li>
<li>epel-release (for centos)</li>
<li><code>python-pip</code></li>
</ul>
<p>And some magic:</p>
<ul>
<li>vagrant</li>
<li>vagrant-libvirt plugin</li>
<li>vagrant <a href="https://blog.devnu11.net/extra/kolla-ansible-quickstart.tar.gz">config</a></li>
</ul>
<h1>Quickstart</h1>
<p><strong><em>We will run all commands on our admin-node (<code>vagrant ssh kolla-admin</code>)</em></strong></p>
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>yum<span class="w"> </span>install<span class="w"> </span>-y<span class="w"> </span>epel-release
sudo<span class="w"> </span>yum<span class="w"> </span>install<span class="w"> </span>-y<span class="w"> </span>python2-pip
sudo<span class="w"> </span>pip<span class="w"> </span>install<span class="w"> </span>kolla-ansible<span class="o">==</span><span class="m">7</span>.0.1
sudo<span class="w"> </span>pip<span class="w"> </span>install<span class="w"> </span><span class="nv">ansible</span><span class="o">==</span><span class="m">2</span>.6.13
sudo<span class="w"> </span>cp<span class="w"> </span>-r<span class="w"> </span>/usr/share/kolla-ansible/etc_examples/kolla<span class="w"> </span>/etc/
sudo<span class="w"> </span>chown<span class="w"> </span>-R<span class="w"> </span>vagrant:vagrant<span class="w"> </span>/etc/kolla/
cp<span class="w"> </span>/usr/share/kolla-ansible/ansible/inventory/all-in-one<span class="w"> </span>~/inventory
</code></pre></div>
<p>For ubuntu 16.04 :</p>
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>apt<span class="w"> </span>install<span class="w"> </span>python-pip
sudo<span class="w"> </span>cp<span class="w"> </span>-r<span class="w"> </span>/usr/local/share/kolla-ansible/etc_examples/kolla<span class="w"> </span>/etc/
</code></pre></div>
<p>Generate $random passwords with</p>
<div class="highlight"><pre><span></span><code>kolla-genpwd
</code></pre></div>
<p>and maybe you want to change the <code>keystone_admin_password</code> password (this is your admin pass for the dashboard)</p>
<div class="highlight"><pre><span></span><code>grep<span class="w"> </span>keystone_admin<span class="w"> </span>/etc/kolla/passwords.yml
keystone_admin_password:<span class="w"> </span>G26xkBrfltvrOk4rsG6MvAZFI418mrV5pgaSI9hm
</code></pre></div>
<h3><code>~/ansible.cfg</code></h3>
<p>Create this file in your $HOME.</p>
<div class="highlight"><pre><span></span><code><span class="k">[defaults]</span>
<span class="na">retry_files_enabled</span><span class="o">=</span><span class="s">False</span>
<span class="na">host_key_checking</span><span class="o">=</span><span class="s">False</span>
<span class="na">deprecation_warnings</span><span class="o">=</span><span class="s">False</span>
<span class="na">pipelining</span><span class="o">=</span><span class="s">True</span>
<span class="na">forks</span><span class="o">=</span><span class="s">100</span>
</code></pre></div>
<h3>Adjust your <code>~/inventory</code></h3>
<div class="highlight"><pre><span></span><code><span class="k">[control]</span>
<span class="na">kolla-ctl0 ansible_become</span><span class="o">=</span><span class="s">true</span>
<span class="na">kolla-ctl1 ansible_become</span><span class="o">=</span><span class="s">true</span>
<span class="na">kolla-ctl2 ansible_become</span><span class="o">=</span><span class="s">true</span>
<span class="k">[network:children]</span>
<span class="na">control</span>
<span class="k">[external-compute]</span>
<span class="na">kolla-comp0 ansible_become</span><span class="o">=</span><span class="s">true</span>
<span class="na">kolla-comp1 ansible_become</span><span class="o">=</span><span class="s">true</span>
<span class="k">[storage]</span>
<span class="na">kolla-ctl0 ansible_become</span><span class="o">=</span><span class="s">true</span>
<span class="k">[monitoring:children]</span>
<span class="na">control</span>
<span class="k">[baremetal:children]</span>
<span class="na">control</span>
<span class="na">compute</span>
<span class="k">[glance]</span>
<span class="na">kolla-ctl0 ansible_become</span><span class="o">=</span><span class="s">true</span>
</code></pre></div>
<h3>Configure kolla-ansible</h3>
<div class="highlight"><pre><span></span><code><span class="l l-Scalar l-Scalar-Plain">$ egrep -v "^#|^$" /etc/kolla/globals.yml</span><span class="w"> </span>
<span class="nn">---</span>
<span class="nt">config_strategy</span><span class="p">:</span><span class="w"> </span><span class="s">"COPY_ALWAYS"</span>
<span class="nt">kolla_base_distro</span><span class="p">:</span><span class="w"> </span><span class="s">"centos"</span>
<span class="nt">kolla_install_type</span><span class="p">:</span><span class="w"> </span><span class="s">"source"</span>
<span class="nt">openstack_release</span><span class="p">:</span><span class="w"> </span><span class="s">"rocky"</span>
<span class="nt">kolla_internal_vip_address</span><span class="p">:</span><span class="w"> </span><span class="s">"10.20.20.254"</span>
<span class="nt">network_interface</span><span class="p">:</span><span class="w"> </span><span class="s">"eth1"</span>
<span class="nt">storage_interface</span><span class="p">:</span><span class="w"> </span><span class="s">"eth2"</span>
<span class="nt">tunnel_interface</span><span class="p">:</span><span class="w"> </span><span class="s">"eth2"</span>
<span class="nt">neutron_external_interface</span><span class="p">:</span><span class="w"> </span><span class="s">"eth3"</span>
</code></pre></div>
<h3>Deploy openstack</h3>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>kolla-ansible<span class="w"> </span>-i<span class="w"> </span>~/inventory<span class="w"> </span>bootstrap-servers
$<span class="w"> </span>kolla-ansible<span class="w"> </span>-i<span class="w"> </span>~/inventory<span class="w"> </span>pull
$<span class="w"> </span>kolla-ansible<span class="w"> </span>-i<span class="w"> </span>~/inventory<span class="w"> </span>prechecks
$<span class="w"> </span>kolla-ansible<span class="w"> </span>-i<span class="w"> </span>~/inventory<span class="w"> </span>deploy
</code></pre></div>
<h4>stopwatch</h4>
<p>with VMs & a 50mbit line</p>
<ul>
<li>bootstrap 2m55.526s</li>
<li>pull (on each vm) 20m49.273s</li>
<li>deploy ~18m10.771s</li>
</ul>
<h3>speedup - pull-through cache</h3>
<h4>On the <code>kolla-admin</code> node</h4>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>sudo<span class="w"> </span>yum<span class="w"> </span>install<span class="w"> </span>-y<span class="w"> </span>docker
$<span class="w"> </span>sudo<span class="w"> </span>systemctl<span class="w"> </span><span class="nb">enable</span><span class="w"> </span>docker
$<span class="w"> </span>sudo<span class="w"> </span>systemctl<span class="w"> </span>start<span class="w"> </span>docker
$<span class="w"> </span>sudo<span class="w"> </span>pip<span class="w"> </span>install<span class="w"> </span>docker-compose
$<span class="w"> </span>sudo<span class="w"> </span>mkdir<span class="w"> </span>/<span class="o">{</span>srv,opt<span class="o">}</span>/registry
$<span class="w"> </span>sudo<span class="w"> </span>chown<span class="w"> </span>vagrant:vagrant<span class="w"> </span>/opt/registry
$<span class="w"> </span>sudo<span class="w"> </span>setenforce<span class="w"> </span><span class="m">0</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="l l-Scalar l-Scalar-Plain">$ cat /opt/registry/config.yml</span>
<span class="l l-Scalar l-Scalar-Plain">version</span><span class="p p-Indicator">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">0.1</span>
<span class="nt">log</span><span class="p">:</span>
<span class="w"> </span><span class="nt">fields</span><span class="p">:</span>
<span class="w"> </span><span class="nt">service</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">registry</span>
<span class="nt">storage</span><span class="p">:</span>
<span class="w"> </span><span class="nt">cache</span><span class="p">:</span>
<span class="w"> </span><span class="nt">blobdescriptor</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">inmemory</span>
<span class="w"> </span><span class="nt">filesystem</span><span class="p">:</span>
<span class="w"> </span><span class="nt">rootdirectory</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">/var/lib/registry</span>
<span class="nt">http</span><span class="p">:</span>
<span class="w"> </span><span class="nt">addr</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">:5000</span>
<span class="w"> </span><span class="nt">headers</span><span class="p">:</span>
<span class="w"> </span><span class="nt">X-Content-Type-Options</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">[</span><span class="nv">nosniff</span><span class="p p-Indicator">]</span>
<span class="nt">health</span><span class="p">:</span>
<span class="w"> </span><span class="nt">storagedriver</span><span class="p">:</span>
<span class="w"> </span><span class="nt">enabled</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
<span class="w"> </span><span class="nt">interval</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">10s</span>
<span class="w"> </span><span class="nt">threshold</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">3</span>
<span class="nt">proxy</span><span class="p">:</span>
<span class="w"> </span><span class="nt">remoteurl</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://registry-1.docker.io</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="l l-Scalar l-Scalar-Plain">$ cat /opt/registry/docker-compose.yaml</span>
<span class="l l-Scalar l-Scalar-Plain">version</span><span class="p p-Indicator">:</span><span class="w"> </span><span class="s">'3'</span>
<span class="nt">services</span><span class="p">:</span>
<span class="w"> </span><span class="nt">registry</span><span class="p">:</span>
<span class="w"> </span><span class="nt">image</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">registry</span>
<span class="w"> </span><span class="nt">restart</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">always</span>
<span class="w"> </span><span class="nt">ports</span><span class="p">:</span>
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">5000:5000</span>
<span class="w"> </span><span class="nt">volumes</span><span class="p">:</span>
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">/opt/registry/config.yml:/etc/docker/registry/config.yml</span>
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">/srv/registry:/var/lib/registry</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span><span class="nb">cd</span><span class="w"> </span>/opt/registry
$<span class="w"> </span>sudo<span class="w"> </span>docker-compose<span class="w"> </span>up<span class="w"> </span>-d
</code></pre></div>
<p>Configure the registry in kolla</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>grep<span class="w"> </span><span class="s2">"^docker_registry"</span><span class="w"> </span>/etc/kolla/globals.yml
docker_registry:<span class="w"> </span><span class="s2">"10.20.30.31:5000"</span>
</code></pre></div>
<p>Rerun the bootstrap (kolla-ansible will configure the registry for you)</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span><span class="nb">time</span><span class="w"> </span>kolla-ansible<span class="w"> </span>-i<span class="w"> </span>~/inventory<span class="w"> </span>pull<span class="w"> </span>--forks<span class="o">=</span><span class="m">1</span>
<span class="o">[</span>...<span class="o">]</span>
real<span class="w"> </span>7m37.361s
user<span class="w"> </span>1m20.185s
sys<span class="w"> </span>0m23.208s
</code></pre></div>ceph/rgw metasearch with elasticsearch 6.x2019-01-29T23:35:00+01:002019-01-29T23:35:00+01:00rmicheltag:blog.devnu11.net,2019-01-29:/2019/01/ceph-rgw-with-elasticsearch-v6.html<h1>Houston, we have a problem</h1>
<p>Since elasticsearch 6.x <a href="https://www.elastic.co/blog/strict-content-type-checking-for-elasticsearch-rest-requests">requires</a> to provide the correct content-type for a request and the <a href="http://docs.ceph.com/docs/master/radosgw/elastic-sync-module/">elastic sync module</a> has no option for the content-type....we stucked at elastic 5.x</p>
<h2>Error message</h2>
<div class="highlight"><pre><span></span><code><span class="p">{</span><span class="nt">"error"</span><span class="p">:</span><span class="s2">"Content-Type header [] is not supported"</span><span class="p">,</span><span class="nt">"status"</span><span class="p">:</span><span class="mi">406</span><span class="p">}</span>
</code></pre></div>
<h2>strace log</h2>
<div class="highlight"><pre><span></span><code>strace<span class="w"> </span>-e<span class="w"> </span>network …</code></pre></div><h1>Houston, we have a problem</h1>
<p>Since elasticsearch 6.x <a href="https://www.elastic.co/blog/strict-content-type-checking-for-elasticsearch-rest-requests">requires</a> to provide the correct content-type for a request and the <a href="http://docs.ceph.com/docs/master/radosgw/elastic-sync-module/">elastic sync module</a> has no option for the content-type....we stucked at elastic 5.x</p>
<h2>Error message</h2>
<div class="highlight"><pre><span></span><code><span class="p">{</span><span class="nt">"error"</span><span class="p">:</span><span class="s2">"Content-Type header [] is not supported"</span><span class="p">,</span><span class="nt">"status"</span><span class="p">:</span><span class="mi">406</span><span class="p">}</span>
</code></pre></div>
<h2>strace log</h2>
<div class="highlight"><pre><span></span><code>strace<span class="w"> </span>-e<span class="w"> </span>network<span class="w"> </span>-s<span class="w"> </span><span class="m">1024</span><span class="w"> </span>-ff<span class="w"> </span><span class="o">[</span>..<span class="o">]</span><span class="w"> </span>radosgw<span class="w"> </span>...
</code></pre></div>
<div class="highlight"><pre><span></span><code>sendto<span class="o">(</span><span class="m">587</span>,<span class="w"> </span><span class="s2">"PUT /rgw-default-cb05d298 HTTP/1.1\r\nHost: 10.20.30.30:9200\r\nAccept: */*\r\nDate: Mon, 04 Feb 2019 00:09:55 +0000\r\nContent-Length: 1233\r\nExpect: 100-continue\r\n\r\n"</span>,<span class="w"> </span><span class="m">158</span>,<span class="w"> </span>MSG_NOSIGNAL,<span class="w"> </span>NULL,<span class="w"> </span><span class="m">0</span><span class="o">)</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">158</span>
recvfrom<span class="o">(</span><span class="m">587</span>,<span class="w"> </span><span class="s2">"HTTP/1.1 100 Continue\r\n\r\n"</span>,<span class="w"> </span><span class="m">16384</span>,<span class="w"> </span><span class="m">0</span>,<span class="w"> </span>NULL,<span class="w"> </span>NULL<span class="o">)</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">25</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="err">se</span><span class="kc">n</span><span class="err">d</span><span class="kc">t</span><span class="err">o(</span><span class="mi">587</span><span class="p">,</span><span class="w"> </span><span class="s2">"{\"settings\":{\"number_of_replicas\":1,\"number_of_shards\":10},\"mappings\":{\"object\":{\"properties\":{\"bucket\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"name\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"instance\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"versioned_epoch\":{\"type\":\"long\"},\"meta\":{\"properties\":{\"cache_control\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"content_disposition\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"content_encoding\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"content_language\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"content_type\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"etag\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"expires\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"mtime\":{\"type\":\"date\",\"format\":\"strict_date_optional_time||epoch_millis\"},\"size\":{\"type\":\"long\"},\"custom-string\":{\"type\":\"nested\",\"properties\":{\"name\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"value\":{\"type\":\"string\",\"index\":\"not_analyzed\"}}},\"custom-int\":{\"type\":\"nested\",\"properties\":{\"name\":{\"type\":\"string\",\"index\":\"not_ana"</span><span class="err">...</span><span class="p">,</span><span class="w"> </span><span class="mi">1233</span><span class="p">,</span><span class="w"> </span><span class="err">MSG_NOSIGNAL</span><span class="p">,</span><span class="w"> </span><span class="err">NULL</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="err">)</span><span class="w"> </span><span class="err">=</span><span class="w"> </span><span class="mi">1233</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="err">recv</span><span class="kc">fr</span><span class="err">om(</span><span class="mi">587</span><span class="p">,</span><span class="w"> </span><span class="s2">"HTTP/1.1 406 Not Acceptable\r\ncontent-type: application/json; charset=UTF-8\r\ncontent-length: 64\r\n\r\n{\"error\":\"Content-Type header [] is not supported\",\"status\":406}"</span><span class="p">,</span><span class="w"> </span><span class="mi">16384</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="err">NULL</span><span class="p">,</span><span class="w"> </span><span class="err">NULL)</span><span class="w"> </span><span class="err">=</span><span class="w"> </span><span class="mi">162</span>
</code></pre></div>ceph nautilus - all new [wip]2019-01-02T11:50:00+01:002019-01-02T14:02:00+01:00rmicheltag:blog.devnu11.net,2019-01-02:/2019/01/ceph-nautilus-all-new.html<p>The Nautilus (14.x.x) release is scheduled for Feb 2019! 9 months after Mimic (13.x.x)</p>
<p>So what's new in ceph nautilus?</p>
<p>There are some new feature and updates:</p>
<ul>
<li>new (mgr) <a href="https://ceph.com/community/new-dashboard-landing-page-nautilus-merged/" target="_blank">dashboard</a><ul>
<li>ticket <a href="https://tracker.ceph.com/issues/27050" target="_blank">#27050</a></li>
</ul>
</li>
<li><a href="http://docs.ceph.com/docs/master/cephfs/client-auth/#network-restriction" target="_blank">MDS network restriction</a><ul>
<li>e.g. <code>caps: [mds] allow r network 10.0.0.0 …</code></li></ul></li></ul><p>The Nautilus (14.x.x) release is scheduled for Feb 2019! 9 months after Mimic (13.x.x)</p>
<p>So what's new in ceph nautilus?</p>
<p>There are some new feature and updates:</p>
<ul>
<li>new (mgr) <a href="https://ceph.com/community/new-dashboard-landing-page-nautilus-merged/" target="_blank">dashboard</a><ul>
<li>ticket <a href="https://tracker.ceph.com/issues/27050" target="_blank">#27050</a></li>
</ul>
</li>
<li><a href="http://docs.ceph.com/docs/master/cephfs/client-auth/#network-restriction" target="_blank">MDS network restriction</a><ul>
<li>e.g. <code>caps: [mds] allow r network 10.0.0.0/8</code></li>
</ul>
</li>
<li><a href="http://docs.ceph.com/docs/master/rados/operations/placement-groups/" target="_blank">PG num autoscale</a><ul>
<li><code>pg_autoscale_mode = warn | off | on</code></li>
<li><code>ceph osd pool autoscale-status</code></li>
</ul>
</li>
<li><a href="http://docs.ceph.com/docs/master/mgr/diskprediction/" target="_blank">Disk failure prediction</a><ul>
<li>mgr plugin</li>
<li>cloud and local mode</li>
</ul>
</li>
<li><code>ceph crash</code><ul>
<li><code>ceph crash info <id></code></li>
</ul>
</li>
</ul>
<div class="highlight"><pre><span></span><code>{
"crash_id": "2019-01-03_16:11:02.969794Z_b7ceb989-1a7c-4051-bd2f-2eb193e0c50c",
"timestamp": "2019-01-03 16:11:02.969794Z",
"process_name": "ceph-mgr",
"entity_name": "mgr.ceph02",
"ceph_version": "14.0.1-2098-gd78850b",
[...]
</code></pre></div>
<ul>
<li>A lot more of mgr modules<ul>
<li><a href="http://docs.ceph.com/docs/master/mgr/ansible/" target="_blank">ansible</a></li>
<li><a href="http://docs.ceph.com/docs/master/mgr/insights/" target="_blank">insights</a></li>
<li><a href="http://docs.ceph.com/docs/master/mgr/deepsea/" target="_blank">deepsea</a></li>
<li><a href="http://docs.ceph.com/docs/master/mgr/rook/" target="_blank">rook</a></li>
</ul>
</li>
<li>[...]</li>
</ul>
<p><img alt="ceph nautilus dashboard" src="https://blog.devnu11.net/images/ceph-nautilus-dashboard.png">
<img alt="ceph nautilus dashboard - rbd mirror" src="https://blog.devnu11.net/images/ceph-nautilus-dashboard-mirror.png"></p>rhev/ovirt: ssl handshake error - TLS2018-12-19T16:13:00+01:002018-12-19T16:13:00+01:00rmicheltag:blog.devnu11.net,2018-12-19:/2018/12/rhev-ovirt-ssl-handshake-error-tls.html<div class="highlight"><pre><span></span><code>Dec<span class="w"> </span><span class="m">18</span><span class="w"> </span><span class="m">15</span>:37:45<span class="w"> </span>rhev06rn<span class="w"> </span>vdsm<span class="o">[</span><span class="m">3145</span><span class="o">]</span>:<span class="w"> </span>ERROR<span class="w"> </span>ssl<span class="w"> </span>handshake:<span class="w"> </span>SSLError,<span class="w"> </span>address:<span class="w"> </span>::ffff:10.12.11.88<span class="w"> </span>
Dec<span class="w"> </span><span class="m">18</span><span class="w"> </span><span class="m">15</span>:37:45<span class="w"> </span>rhev06rn<span class="w"> </span>vdsm<span class="o">[</span><span class="m">3145</span><span class="o">]</span>:<span class="w"> </span>WARN<span class="w"> </span>unhandled<span class="w"> </span>write<span class="w"> </span>event
</code></pre></div>
<p><strong><em>/etc/vdsm/vdsm.conf</em></strong></p>
<div class="highlight"><pre><span></span><code><span class="k">[vars]</span><span class="w"> </span>
<span class="c1">#ssl_excludes = OP_NO_TLSv1,OP_NO_TLSv1_1 </span>
<span class="na">ssl</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">true</span>
<span class="k">[addresses]</span><span class="w"> </span>
<span class="na">management_port</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">54321</span>
</code></pre></div>
<p><a href="https://bugzilla.redhat.com/show_bug.cgi?id=1408847" target="_blank">Bugzilla Link</a></p>CaaS3: Update hostname2018-12-18T16:16:00+01:002018-12-18T16:16:00+01:00rmicheltag:blog.devnu11.net,2018-12-18:/2018/12/caas3-update-hostname.html<div class="highlight"><pre><span></span><code>linux-q0sf:~<span class="w"> </span><span class="c1"># cat /var/lib/misc/infra-secrets/mariadb-root-password </span>
eVSf9Ss/HFa4Rj68ymzhmVsHvhdV6i5aqUpXuboMGRdwo1SVnysDd/wg0De+9FJymdBsJLdmYsdU
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="n">linux</span><span class="o">-</span><span class="n">q0sf</span><span class="p">:</span><span class="o">~</span><span class="w"> </span><span class="o">#</span><span class="w"> </span><span class="n">docker</span><span class="w"> </span><span class="k">exec</span><span class="w"> </span><span class="o">-</span><span class="n">ti</span><span class="w"> </span><span class="n">d72182149834</span><span class="w"> </span><span class="n">bash</span><span class="w"> </span>
<span class="n">bash</span><span class="o">-</span><span class="mi">4</span><span class="p">.</span><span class="mi">3</span><span class="o">#</span><span class="w"> </span><span class="n">mysql</span><span class="w"> </span><span class="o">-</span><span class="n">u</span><span class="w"> </span><span class="n">root</span><span class="w"> </span><span class="o">-</span><span class="n">p</span><span class="w"> </span>
<span class="n">Enter</span><span class="w"> </span><span class="n">password</span><span class="p">:</span><span class="w"> </span>
<span class="n">Welcome</span><span class="w"> </span><span class="k">to</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">MariaDB</span><span class="w"> </span><span class="n">monitor</span><span class="p">.</span><span class="w"> </span><span class="n">Commands</span><span class="w"> </span><span class="k">end</span><span class="w"> </span><span class="k">with</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="k">or</span><span class="w"> </span><span class="err">\</span><span class="k">g</span><span class="p">.</span><span class="w"> </span>
<span class="n">Your</span><span class="w"> </span><span class="n">MariaDB</span><span class="w"> </span><span class="k">connection</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="mi">18</span><span class="w"> </span>
<span class="n">Server</span><span class="w"> </span><span class="k">version</span><span class="p">:</span><span class="w"> </span><span class="mi">10</span><span class="p">.</span><span class="mi">0</span><span class="p">.</span><span class="mi">34</span><span class="o">-</span><span class="n">MariaDB</span><span class="w"> </span><span class="n">SLE …</span></code></pre></div><div class="highlight"><pre><span></span><code>linux-q0sf:~<span class="w"> </span><span class="c1"># cat /var/lib/misc/infra-secrets/mariadb-root-password </span>
eVSf9Ss/HFa4Rj68ymzhmVsHvhdV6i5aqUpXuboMGRdwo1SVnysDd/wg0De+9FJymdBsJLdmYsdU
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="n">linux</span><span class="o">-</span><span class="n">q0sf</span><span class="p">:</span><span class="o">~</span><span class="w"> </span><span class="o">#</span><span class="w"> </span><span class="n">docker</span><span class="w"> </span><span class="k">exec</span><span class="w"> </span><span class="o">-</span><span class="n">ti</span><span class="w"> </span><span class="n">d72182149834</span><span class="w"> </span><span class="n">bash</span><span class="w"> </span>
<span class="n">bash</span><span class="o">-</span><span class="mi">4</span><span class="p">.</span><span class="mi">3</span><span class="o">#</span><span class="w"> </span><span class="n">mysql</span><span class="w"> </span><span class="o">-</span><span class="n">u</span><span class="w"> </span><span class="n">root</span><span class="w"> </span><span class="o">-</span><span class="n">p</span><span class="w"> </span>
<span class="n">Enter</span><span class="w"> </span><span class="n">password</span><span class="p">:</span><span class="w"> </span>
<span class="n">Welcome</span><span class="w"> </span><span class="k">to</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">MariaDB</span><span class="w"> </span><span class="n">monitor</span><span class="p">.</span><span class="w"> </span><span class="n">Commands</span><span class="w"> </span><span class="k">end</span><span class="w"> </span><span class="k">with</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="k">or</span><span class="w"> </span><span class="err">\</span><span class="k">g</span><span class="p">.</span><span class="w"> </span>
<span class="n">Your</span><span class="w"> </span><span class="n">MariaDB</span><span class="w"> </span><span class="k">connection</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="mi">18</span><span class="w"> </span>
<span class="n">Server</span><span class="w"> </span><span class="k">version</span><span class="p">:</span><span class="w"> </span><span class="mi">10</span><span class="p">.</span><span class="mi">0</span><span class="p">.</span><span class="mi">34</span><span class="o">-</span><span class="n">MariaDB</span><span class="w"> </span><span class="n">SLE</span><span class="w"> </span><span class="mi">12</span><span class="w"> </span><span class="n">SP1</span><span class="w"> </span><span class="n">package</span>
<span class="n">Copyright</span><span class="w"> </span><span class="p">(</span><span class="k">c</span><span class="p">)</span><span class="w"> </span><span class="mi">2000</span><span class="p">,</span><span class="w"> </span><span class="mi">2018</span><span class="p">,</span><span class="w"> </span><span class="n">Oracle</span><span class="p">,</span><span class="w"> </span><span class="n">MariaDB</span><span class="w"> </span><span class="n">Corporation</span><span class="w"> </span><span class="n">Ab</span><span class="w"> </span><span class="k">and</span><span class="w"> </span><span class="n">others</span><span class="p">.</span>
<span class="k">Type</span><span class="w"> </span><span class="s1">'help;'</span><span class="w"> </span><span class="k">or</span><span class="w"> </span><span class="s1">'\\h'</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">help</span><span class="p">.</span><span class="w"> </span><span class="k">Type</span><span class="w"> </span><span class="s1">'\\c'</span><span class="w"> </span><span class="k">to</span><span class="w"> </span><span class="n">clear</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="k">current</span><span class="w"> </span><span class="k">input</span><span class="w"> </span><span class="k">statement</span><span class="p">.</span>
<span class="n">MariaDB</span><span class="w"> </span><span class="p">[(</span><span class="k">none</span><span class="p">)]</span><span class="o">></span><span class="w"> </span><span class="k">show</span><span class="w"> </span><span class="n">databases</span><span class="p">;</span><span class="w"> </span>
<span class="o">+</span><span class="c1">--------------------+ </span>
<span class="o">|</span><span class="w"> </span><span class="k">Database</span><span class="w"> </span><span class="o">|</span><span class="w"> </span>
<span class="o">+</span><span class="c1">--------------------+ </span>
<span class="o">|</span><span class="w"> </span><span class="n">information_schema</span><span class="w"> </span><span class="o">|</span><span class="w"> </span>
<span class="o">|</span><span class="w"> </span><span class="n">mysql</span><span class="w"> </span><span class="o">|</span><span class="w"> </span>
<span class="o">|</span><span class="w"> </span><span class="n">performance</span><span class="err">\</span><span class="n">_schema</span><span class="w"> </span><span class="o">|</span><span class="w"> </span>
<span class="o">|</span><span class="w"> </span><span class="n">velum_production</span><span class="w"> </span><span class="o">|</span><span class="w"> </span>
<span class="o">+</span><span class="c1">--------------------+ </span>
<span class="mi">4</span><span class="w"> </span><span class="k">rows</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="k">set</span><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="p">.</span><span class="mi">01</span><span class="w"> </span><span class="n">sec</span><span class="p">)</span>
<span class="n">MariaDB</span><span class="w"> </span><span class="p">[(</span><span class="k">none</span><span class="p">)]</span><span class="o">></span><span class="w"> </span><span class="n">use</span><span class="w"> </span><span class="n">velum_production</span><span class="p">;</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="n">MariaDB</span><span class="w"> </span><span class="p">[</span><span class="n">velum_production</span><span class="p">]</span><span class="o">></span><span class="w"> </span><span class="k">update</span><span class="w"> </span><span class="n">minions</span><span class="w"> </span><span class="k">set</span><span class="w"> </span><span class="n">fqdn</span><span class="o">=</span><span class="ss">"caas2.loc.al"</span><span class="w"> </span><span class="k">where</span><span class="w"> </span><span class="n">minion_id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ss">"c2136e77f62444b6a68b758a231f00eb"</span><span class="p">;</span><span class="w"> </span>
<span class="n">Query</span><span class="w"> </span><span class="n">OK</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="w"> </span><span class="n">affected</span><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="p">.</span><span class="mi">01</span><span class="w"> </span><span class="n">sec</span><span class="p">)</span><span class="w"> </span>
<span class="k">Rows</span><span class="w"> </span><span class="n">matched</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="n">Changed</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="n">Warnings</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span>
<span class="n">MariaDB</span><span class="w"> </span><span class="p">[</span><span class="n">velum_production</span><span class="p">]</span><span class="o">></span><span class="w"> </span><span class="k">select</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">from</span><span class="w"> </span><span class="n">minions</span><span class="p">;</span><span class="w"> </span>
<span class="o">+</span><span class="c1">----+----------------------------------+--------------+------+-----------+-------------------------+------------------+---------------------+---------------------+ </span>
<span class="o">|</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">minion_id</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">fqdn</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">role</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">highstate</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">tx_update_reboot_needed</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">tx_update_failed</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">created_at</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">updated_at</span><span class="w"> </span><span class="o">|</span><span class="w"> </span>
<span class="o">+</span><span class="c1">----+----------------------------------+--------------+------+-----------+-------------------------+------------------+---------------------+---------------------+ </span>
<span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">admin</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">admin</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2018</span><span class="o">-</span><span class="mi">11</span><span class="o">-</span><span class="mi">05</span><span class="w"> </span><span class="mi">09</span><span class="p">:</span><span class="mi">29</span><span class="p">:</span><span class="mi">16</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2018</span><span class="o">-</span><span class="mi">11</span><span class="o">-</span><span class="mi">05</span><span class="w"> </span><span class="mi">09</span><span class="p">:</span><span class="mi">29</span><span class="p">:</span><span class="mi">16</span><span class="w"> </span><span class="o">|</span><span class="w"> </span>
<span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">c2136e77f62444b6a68b758a231f00eb</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">caas2</span><span class="p">.</span><span class="n">loc</span><span class="p">.</span><span class="n">al</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">NULL</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2018</span><span class="o">-</span><span class="mi">11</span><span class="o">-</span><span class="mi">05</span><span class="w"> </span><span class="mi">09</span><span class="p">:</span><span class="mi">40</span><span class="p">:</span><span class="mi">28</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2018</span><span class="o">-</span><span class="mi">11</span><span class="o">-</span><span class="mi">05</span><span class="w"> </span><span class="mi">09</span><span class="p">:</span><span class="mi">40</span><span class="p">:</span><span class="mi">28</span><span class="w"> </span><span class="o">|</span><span class="w"> </span>
<span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">82177752</span><span class="n">bc1f4613beae955d4080d994</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">linux</span><span class="p">.</span><span class="n">loc</span><span class="p">.</span><span class="n">al</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">NULL</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2018</span><span class="o">-</span><span class="mi">11</span><span class="o">-</span><span class="mi">05</span><span class="w"> </span><span class="mi">09</span><span class="p">:</span><span class="mi">40</span><span class="p">:</span><span class="mi">28</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2018</span><span class="o">-</span><span class="mi">11</span><span class="o">-</span><span class="mi">05</span><span class="w"> </span><span class="mi">09</span><span class="p">:</span><span class="mi">40</span><span class="p">:</span><span class="mi">28</span><span class="w"> </span><span class="o">|</span><span class="w"> </span>
<span class="o">+</span><span class="c1">----+----------------------------------+--------------+------+-----------+-------------------------+------------------+---------------------+---------------------+ </span>
<span class="mi">3</span><span class="w"> </span><span class="k">rows</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="k">set</span><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="p">.</span><span class="mi">00</span><span class="w"> </span><span class="n">sec</span><span class="p">)</span>
<span class="n">MariaDB</span><span class="w"> </span><span class="p">[</span><span class="n">velum_production</span><span class="p">]</span><span class="o">></span><span class="w"> </span><span class="k">update</span><span class="w"> </span><span class="n">minions</span><span class="w"> </span><span class="k">set</span><span class="w"> </span><span class="n">fqdn</span><span class="o">=</span><span class="ss">"caas3.loc.al"</span><span class="w"> </span><span class="k">where</span><span class="w"> </span><span class="n">minion_id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ss">"82177752bc1f4613beae955d4080d994"</span><span class="p">;</span><span class="w"> </span>
<span class="n">Query</span><span class="w"> </span><span class="n">OK</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="w"> </span><span class="n">affected</span><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="p">.</span><span class="mi">01</span><span class="w"> </span><span class="n">sec</span><span class="p">)</span><span class="w"> </span>
<span class="k">Rows</span><span class="w"> </span><span class="n">matched</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="n">Changed</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="n">Warnings</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span>
</code></pre></div>ceph - sort osds by utilisation2018-09-20T08:51:00+02:002018-09-20T08:51:00+02:00rmicheltag:blog.devnu11.net,2018-09-20:/2018/09/ceph-sort-osds-by-utilisation.html<p><strong><em>Version 1: keep it simple</em></strong></p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>ceph<span class="w"> </span>osd<span class="w"> </span>df<span class="w"> </span><span class="p">|</span><span class="w"> </span>awk<span class="w"> </span><span class="s1">'{ print "osd."$1, "size: "$5, "usage: " $8 }'</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>sort<span class="w"> </span>-nk5
</code></pre></div>
<p>OSDs can be listed twice - depends on the crushmap.</p>
<p><strong><em>Version 2: json + python</em></strong></p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>ceph<span class="w"> </span>osd<span class="w"> </span>df<span class="w"> </span>tree<span class="w"> </span>-f<span class="w"> </span>json<span class="w"> </span><span class="p">|</span><span class="w"> </span>python<span class="w"> </span>sort_hdd_osds.py
osd.28<span class="w"> </span>utilization:<span class="w"> </span><span class="m">15</span>.278888
osd.15<span class="w"> </span>utilization:<span class="w"> </span><span class="m">19</span>.700484 …</code></pre></div><p><strong><em>Version 1: keep it simple</em></strong></p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>ceph<span class="w"> </span>osd<span class="w"> </span>df<span class="w"> </span><span class="p">|</span><span class="w"> </span>awk<span class="w"> </span><span class="s1">'{ print "osd."$1, "size: "$5, "usage: " $8 }'</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>sort<span class="w"> </span>-nk5
</code></pre></div>
<p>OSDs can be listed twice - depends on the crushmap.</p>
<p><strong><em>Version 2: json + python</em></strong></p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>ceph<span class="w"> </span>osd<span class="w"> </span>df<span class="w"> </span>tree<span class="w"> </span>-f<span class="w"> </span>json<span class="w"> </span><span class="p">|</span><span class="w"> </span>python<span class="w"> </span>sort_hdd_osds.py
osd.28<span class="w"> </span>utilization:<span class="w"> </span><span class="m">15</span>.278888
osd.15<span class="w"> </span>utilization:<span class="w"> </span><span class="m">19</span>.700484
osd.58<span class="w"> </span>utilization:<span class="w"> </span><span class="m">25</span>.052757
osd.31<span class="w"> </span>utilization:<span class="w"> </span><span class="m">28</span>.781335
osd.22<span class="w"> </span>utilization:<span class="w"> </span><span class="m">31</span>.525527
osd.2<span class="w"> </span>utilization:<span class="w"> </span><span class="m">32</span>.456151
osd.47<span class="w"> </span>utilization:<span class="w"> </span><span class="m">32</span>.496669
osd.39<span class="w"> </span>utilization:<span class="w"> </span><span class="m">32</span>.598765
osd.17<span class="w"> </span>utilization:<span class="w"> </span><span class="m">34</span>.17247
osd.40<span class="w"> </span>utilization:<span class="w"> </span><span class="m">34</span>.375297
osd.56<span class="w"> </span>utilization:<span class="w"> </span><span class="m">35</span>.102418
osd.48<span class="w"> </span>utilization:<span class="w"> </span><span class="m">36</span>.400253
osd.50<span class="w"> </span>utilization:<span class="w"> </span><span class="m">36</span>.608321
osd.52<span class="w"> </span>utilization:<span class="w"> </span><span class="m">36</span>.628858
osd.38<span class="w"> </span>utilization:<span class="w"> </span><span class="m">36</span>.929235
osd.13<span class="w"> </span>utilization:<span class="w"> </span><span class="m">37</span>.222498
osd.30<span class="w"> </span>utilization:<span class="w"> </span><span class="m">40</span>.405145
osd.59<span class="w"> </span>utilization:<span class="w"> </span><span class="m">40</span>.708111
osd.62<span class="w"> </span>utilization:<span class="w"> </span><span class="m">40</span>.813985
osd.43<span class="w"> </span>utilization:<span class="w"> </span><span class="m">41</span>.488432
osd.53<span class="w"> </span>utilization:<span class="w"> </span><span class="m">42</span>.457611
osd.49<span class="w"> </span>utilization:<span class="w"> </span><span class="m">42</span>.834021
osd.23<span class="w"> </span>utilization:<span class="w"> </span><span class="m">42</span>.907104
osd.18<span class="w"> </span>utilization:<span class="w"> </span><span class="m">48</span>.978743
</code></pre></div>
<p>L22@<a href="https://gist.github.com/rrmichel/84961701bbc207b60b994220cca0e842">sort_hdd_osds.py</a> - specifies the bucket type which is used (not the device class!)</p>ceph - wrong osd id with lvm+filestore2018-07-04T20:53:00+02:002018-07-04T20:53:00+02:00rmicheltag:blog.devnu11.net,2018-07-04:/2018/07/ceph-wrong-osd-id-with-lvmfilestore.html<p>Not sure why...but i've found a strange ceph-volume behavior with lvm and filestore.</p>
<p><code>ceph-volume lvm list</code> shows the wrong osd id while the affected osd is online with a another id.</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>mount<span class="w"> </span><span class="p">|</span><span class="w"> </span>grep<span class="w"> </span>ceph-2
/dev/mapper/vg00-datalv1<span class="w"> </span>on<span class="w"> </span>/var/lib/ceph/osd/ceph-2<span class="w"> </span><span class="nb">type</span><span class="w"> </span>xfs<span class="w"> </span><span class="o">(</span>rw,relatime,seclabel,attr2 …</code></pre></div><p>Not sure why...but i've found a strange ceph-volume behavior with lvm and filestore.</p>
<p><code>ceph-volume lvm list</code> shows the wrong osd id while the affected osd is online with a another id.</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>mount<span class="w"> </span><span class="p">|</span><span class="w"> </span>grep<span class="w"> </span>ceph-2
/dev/mapper/vg00-datalv1<span class="w"> </span>on<span class="w"> </span>/var/lib/ceph/osd/ceph-2<span class="w"> </span><span class="nb">type</span><span class="w"> </span>xfs<span class="w"> </span><span class="o">(</span>rw,relatime,seclabel,attr2,inode64,noquota<span class="o">)</span>
$<span class="w"> </span>cat<span class="w"> </span>/var/lib/ceph/osd/ceph-2/whoami<span class="w"> </span>
<span class="m">2</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>sudo<span class="w"> </span>ceph<span class="w"> </span>osd<span class="w"> </span>metadata<span class="w"> </span>osd.2<span class="w"> </span><span class="p">|</span><span class="w"> </span>egrep<span class="w"> </span><span class="s2">"id|objectstore"</span>
<span class="w"> </span><span class="s2">"id"</span>:<span class="w"> </span><span class="m">2</span>,
<span class="w"> </span><span class="s2">"osd_objectstore"</span>:<span class="w"> </span><span class="s2">"filestore"</span>,
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="err">$</span><span class="w"> </span><span class="n">sudo</span><span class="w"> </span><span class="n">ceph</span><span class="o">-</span><span class="n">volume</span><span class="w"> </span><span class="n">lvm</span><span class="w"> </span><span class="n">list</span>
<span class="o">[</span><span class="n">...</span><span class="o">]</span>
<span class="o">======</span><span class="w"> </span><span class="n">osd</span><span class="mf">.8</span><span class="w"> </span><span class="o">=======</span>
<span class="w"> </span><span class="o">[</span><span class="n">data</span><span class="o">]</span><span class="w"> </span><span class="o">/</span><span class="n">dev</span><span class="o">/</span><span class="n">vg00</span><span class="o">/</span><span class="n">datalv1</span>
<span class="w"> </span><span class="n">type</span><span class="w"> </span><span class="k">data</span>
<span class="w"> </span><span class="n">journal</span><span class="w"> </span><span class="n">uuid</span><span class="w"> </span><span class="n">XqM6CP</span><span class="o">-</span><span class="n">embw</span><span class="o">-</span><span class="n">gIfs</span><span class="o">-</span><span class="n">UN2Q</span><span class="o">-</span><span class="n">gRDR</span><span class="o">-</span><span class="n">TVWP</span><span class="o">-</span><span class="n">y1q5Te</span>
<span class="w"> </span><span class="n">osd</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="mi">8</span>
<span class="w"> </span><span class="n">cluster</span><span class="w"> </span><span class="n">fsid</span><span class="w"> </span><span class="n">ed62dbfb</span><span class="o">-</span><span class="n">f0f7</span><span class="o">-</span><span class="mi">4</span><span class="n">b13</span><span class="o">-</span><span class="n">ace0</span><span class="o">-</span><span class="mi">4</span><span class="n">ccea0c4a6bf</span>
<span class="w"> </span><span class="n">cluster</span><span class="w"> </span><span class="n">name</span><span class="w"> </span><span class="n">ceph</span>
<span class="w"> </span><span class="n">osd</span><span class="w"> </span><span class="n">fsid</span><span class="w"> </span><span class="mf">38e7</span><span class="n">bfb3</span><span class="o">-</span><span class="n">ad57</span><span class="o">-</span><span class="mi">4979</span><span class="o">-</span><span class="n">b8a9</span><span class="o">-</span><span class="mi">3</span><span class="n">f875e6cb6f5</span>
<span class="w"> </span><span class="n">encrypted</span><span class="w"> </span><span class="mi">0</span>
<span class="w"> </span><span class="k">data</span><span class="w"> </span><span class="n">uuid</span><span class="w"> </span><span class="n">W3h12f</span><span class="o">-</span><span class="n">xg3y</span><span class="o">-</span><span class="n">ij1Z</span><span class="o">-</span><span class="n">F70h</span><span class="o">-</span><span class="n">yx2n</span><span class="o">-</span><span class="n">SyD9</span><span class="o">-</span><span class="n">ioNEC7</span>
<span class="w"> </span><span class="n">cephx</span><span class="w"> </span><span class="n">lockbox</span><span class="w"> </span><span class="n">secret</span>
<span class="w"> </span><span class="n">crush</span><span class="w"> </span><span class="n">device</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="k">None</span>
<span class="w"> </span><span class="k">data</span><span class="w"> </span><span class="n">device</span><span class="w"> </span><span class="o">/</span><span class="n">dev</span><span class="o">/</span><span class="n">vg00</span><span class="o">/</span><span class="n">datalv1</span>
<span class="w"> </span><span class="n">vdo</span><span class="w"> </span><span class="mi">0</span>
<span class="w"> </span><span class="n">journal</span><span class="w"> </span><span class="n">device</span><span class="w"> </span><span class="o">/</span><span class="n">dev</span><span class="o">/</span><span class="n">vg00</span><span class="o">/</span><span class="n">journallv1</span>
<span class="w"> </span><span class="o">[</span><span class="n">journal</span><span class="o">]</span><span class="w"> </span><span class="o">/</span><span class="n">dev</span><span class="o">/</span><span class="n">vg00</span><span class="o">/</span><span class="n">journallv1</span>
<span class="w"> </span><span class="n">type</span><span class="w"> </span><span class="n">journal</span>
<span class="w"> </span><span class="n">journal</span><span class="w"> </span><span class="n">uuid</span><span class="w"> </span><span class="n">XqM6CP</span><span class="o">-</span><span class="n">embw</span><span class="o">-</span><span class="n">gIfs</span><span class="o">-</span><span class="n">UN2Q</span><span class="o">-</span><span class="n">gRDR</span><span class="o">-</span><span class="n">TVWP</span><span class="o">-</span><span class="n">y1q5Te</span>
<span class="w"> </span><span class="n">osd</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="mi">8</span>
<span class="w"> </span><span class="n">cluster</span><span class="w"> </span><span class="n">fsid</span><span class="w"> </span><span class="n">ed62dbfb</span><span class="o">-</span><span class="n">f0f7</span><span class="o">-</span><span class="mi">4</span><span class="n">b13</span><span class="o">-</span><span class="n">ace0</span><span class="o">-</span><span class="mi">4</span><span class="n">ccea0c4a6bf</span>
<span class="w"> </span><span class="n">cluster</span><span class="w"> </span><span class="n">name</span><span class="w"> </span><span class="n">ceph</span>
<span class="w"> </span><span class="n">osd</span><span class="w"> </span><span class="n">fsid</span><span class="w"> </span><span class="mf">38e7</span><span class="n">bfb3</span><span class="o">-</span><span class="n">ad57</span><span class="o">-</span><span class="mi">4979</span><span class="o">-</span><span class="n">b8a9</span><span class="o">-</span><span class="mi">3</span><span class="n">f875e6cb6f5</span>
<span class="w"> </span><span class="n">encrypted</span><span class="w"> </span><span class="mi">0</span>
<span class="w"> </span><span class="k">data</span><span class="w"> </span><span class="n">uuid</span><span class="w"> </span><span class="n">W3h12f</span><span class="o">-</span><span class="n">xg3y</span><span class="o">-</span><span class="n">ij1Z</span><span class="o">-</span><span class="n">F70h</span><span class="o">-</span><span class="n">yx2n</span><span class="o">-</span><span class="n">SyD9</span><span class="o">-</span><span class="n">ioNEC7</span>
<span class="w"> </span><span class="n">cephx</span><span class="w"> </span><span class="n">lockbox</span><span class="w"> </span><span class="n">secret</span>
<span class="w"> </span><span class="n">crush</span><span class="w"> </span><span class="n">device</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="k">None</span>
<span class="w"> </span><span class="k">data</span><span class="w"> </span><span class="n">device</span><span class="w"> </span><span class="o">/</span><span class="n">dev</span><span class="o">/</span><span class="n">vg00</span><span class="o">/</span><span class="n">datalv1</span>
<span class="w"> </span><span class="n">vdo</span><span class="w"> </span><span class="mi">0</span>
<span class="w"> </span><span class="n">journal</span><span class="w"> </span><span class="n">device</span><span class="w"> </span><span class="o">/</span><span class="n">dev</span><span class="o">/</span><span class="n">vg00</span><span class="o">/</span><span class="n">journallv1</span>
</code></pre></div>
<p>And if you try to start the osd via <code>ceph-volume lvm trigger</code> with the "wrong" ID 8 it will...</p>
<div class="highlight"><pre><span></span><code><span class="n">$</span><span class="w"> </span><span class="n">sudo</span><span class="w"> </span><span class="n">ceph</span><span class="o">-</span><span class="n">volume</span><span class="w"> </span><span class="n">lvm</span><span class="w"> </span><span class="n">trigger</span><span class="w"> </span><span class="mi">8</span><span class="mf">-38e7</span><span class="n">bfb3</span><span class="o">-</span><span class="n">ad57</span><span class="mi">-4979</span><span class="o">-</span><span class="n">b8a9</span><span class="mi">-3</span><span class="n">f875e6cb6f5</span>
<span class="n">Running</span><span class="w"> </span><span class="n">command</span><span class="o">:</span><span class="w"> </span><span class="n">mount</span><span class="w"> </span><span class="o">-</span><span class="n">t</span><span class="w"> </span><span class="n">xfs</span><span class="w"> </span><span class="o">-</span><span class="n">o</span><span class="w"> </span><span class="n">rw</span><span class="p">,</span><span class="n">noatime</span><span class="p">,</span><span class="n">inode64</span><span class="w"> </span><span class="o">/</span><span class="n">dev</span><span class="o">/</span><span class="n">vg00</span><span class="o">/</span><span class="n">datalv1</span><span class="w"> </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">ceph</span><span class="o">/</span><span class="n">osd</span><span class="o">/</span><span class="n">ceph</span><span class="mi">-8</span>
<span class="n">Running</span><span class="w"> </span><span class="n">command</span><span class="o">:</span><span class="w"> </span><span class="n">ln</span><span class="w"> </span><span class="o">-</span><span class="n">snf</span><span class="w"> </span><span class="o">/</span><span class="n">dev</span><span class="o">/</span><span class="n">vg00</span><span class="o">/</span><span class="n">journallv1</span><span class="w"> </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">ceph</span><span class="o">/</span><span class="n">osd</span><span class="o">/</span><span class="n">ceph</span><span class="mi">-8</span><span class="o">/</span><span class="n">journal</span>
<span class="n">Running</span><span class="w"> </span><span class="n">command</span><span class="o">:</span><span class="w"> </span><span class="n">chown</span><span class="w"> </span><span class="o">-</span><span class="n">R</span><span class="w"> </span><span class="n">ceph</span><span class="o">:</span><span class="n">ceph</span><span class="w"> </span><span class="o">/</span><span class="n">dev</span><span class="o">/</span><span class="n">dm</span><span class="mi">-2</span>
<span class="n">Running</span><span class="w"> </span><span class="n">command</span><span class="o">:</span><span class="w"> </span><span class="n">systemctl</span><span class="w"> </span><span class="n">enable</span><span class="w"> </span><span class="n">ceph</span><span class="o">-</span><span class="n">volume</span><span class="p">@</span><span class="n">lvm</span><span class="mi">-8</span><span class="mf">-38e7</span><span class="n">bfb3</span><span class="o">-</span><span class="n">ad57</span><span class="mi">-4979</span><span class="o">-</span><span class="n">b8a9</span><span class="mi">-3</span><span class="n">f875e6cb6f5</span>
<span class="n">Running</span><span class="w"> </span><span class="n">command</span><span class="o">:</span><span class="w"> </span><span class="n">systemctl</span><span class="w"> </span><span class="n">start</span><span class="w"> </span><span class="n">ceph</span><span class="o">-</span><span class="n">osd</span><span class="mi">@8</span>
<span class="o">--></span><span class="w"> </span><span class="n">ceph</span><span class="o">-</span><span class="n">volume</span><span class="w"> </span><span class="n">lvm</span><span class="w"> </span><span class="n">activate</span><span class="w"> </span><span class="n">successful</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">osd</span><span class="w"> </span><span class="n">ID</span><span class="o">:</span><span class="w"> </span><span class="mi">8</span>
<span class="n">$</span><span class="w"> </span><span class="n">sudo</span><span class="w"> </span><span class="n">cat</span><span class="w"> </span><span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">log</span><span class="o">/</span><span class="n">ceph</span><span class="o">/</span><span class="n">ceph</span><span class="o">-</span><span class="n">osd</span><span class="mf">.8</span><span class="p">.</span><span class="n">log</span>
<span class="mi">2018</span><span class="mo">-07-04</span><span class="w"> </span><span class="mi">19</span><span class="o">:</span><span class="mi">28</span><span class="o">:</span><span class="mf">34.754576</span><span class="w"> </span><span class="mf">7f346e67f</span><span class="n">d80</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="n">set</span><span class="w"> </span><span class="n">uid</span><span class="o">:</span><span class="n">gid</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="mi">167</span><span class="o">:</span><span class="mi">167</span><span class="w"> </span><span class="p">(</span><span class="n">ceph</span><span class="o">:</span><span class="n">ceph</span><span class="p">)</span>
<span class="mi">2018</span><span class="mo">-07-04</span><span class="w"> </span><span class="mi">19</span><span class="o">:</span><span class="mi">28</span><span class="o">:</span><span class="mf">34.754598</span><span class="w"> </span><span class="mf">7f346e67f</span><span class="n">d80</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="n">ceph</span><span class="w"> </span><span class="n">version</span><span class="w"> </span><span class="mf">12.2.5</span><span class="w"> </span><span class="p">(</span><span class="n">cad919881333ac92274171586c827e01f554a70a</span><span class="p">)</span><span class="w"> </span><span class="n">luminous</span><span class="w"> </span><span class="p">(</span><span class="n">stable</span><span class="p">),</span><span class="w"> </span><span class="n">process</span><span class="w"> </span><span class="p">(</span><span class="n">unknown</span><span class="p">),</span><span class="w"> </span><span class="n">pid</span><span class="w"> </span><span class="mi">3755</span>
<span class="mi">2018</span><span class="mo">-07-04</span><span class="w"> </span><span class="mi">19</span><span class="o">:</span><span class="mi">28</span><span class="o">:</span><span class="mf">34.754872</span><span class="w"> </span><span class="mf">7f346e67f</span><span class="n">d80</span><span class="w"> </span><span class="mi">-1</span><span class="w"> </span><span class="n">OSD</span><span class="w"> </span><span class="kt">id</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="n">my</span><span class="w"> </span><span class="kt">id</span><span class="w"> </span><span class="mi">8</span>
</code></pre></div>
<p><strong>FAIL!</strong> Same with the correct ID 2...</p>
<div class="highlight"><pre><span></span><code><span class="o">[</span><span class="n">vagrant@ceph-osd2 ~</span><span class="o">]</span><span class="err">$</span><span class="w"> </span><span class="n">sudo</span><span class="w"> </span><span class="n">ceph</span><span class="o">-</span><span class="n">volume</span><span class="w"> </span><span class="n">lvm</span><span class="w"> </span><span class="k">trigger</span><span class="w"> </span><span class="mi">2</span><span class="o">-</span><span class="mf">38e7</span><span class="n">bfb3</span><span class="o">-</span><span class="n">ad57</span><span class="o">-</span><span class="mi">4979</span><span class="o">-</span><span class="n">b8a9</span><span class="o">-</span><span class="mi">3</span><span class="n">f875e6cb6f5</span>
<span class="c1">--> RuntimeError: could not find osd.2 with fsid 38e7bfb3-ad57-4979-b8a9-3f875e6cb6f5</span>
</code></pre></div>
<p>To fix that problem we need to adjust the <strong>datatag: ceph.osd_id</strong> on the LVM device.</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>sudo<span class="w"> </span>lvs<span class="w"> </span>-o<span class="w"> </span>lv_tags<span class="w"> </span>vg00/datalv1
<span class="w"> </span>LV<span class="w"> </span>Tags<span class="w"> </span>
<span class="w"> </span>ceph.cephx_lockbox_secret<span class="o">=</span>,ceph.cluster_fsid<span class="o">=</span>ed62dbfb-f0f7-4b13-ace0-4ccea0c4a6bf,ceph.cluster_name<span class="o">=</span>ceph,ceph.crush_device_class<span class="o">=</span>None,ceph.data_device<span class="o">=</span>/dev/vg00/datalv1,ceph.data_uuid<span class="o">=</span>W3h12f-xg3y-ij1Z-F70h-yx2n-SyD9-ioNEC7,ceph.encrypted<span class="o">=</span><span class="m">0</span>,ceph.journal_device<span class="o">=</span>/dev/vg00/journallv1,ceph.journal_uuid<span class="o">=</span>XqM6CP-embw-gIfs-UN2Q-gRDR-TVWP-y1q5Te,ceph.osd_fsid<span class="o">=</span>38e7bfb3-ad57-4979-b8a9-3f875e6cb6f5,ceph.osd_id<span class="o">=</span><span class="m">8</span>,ceph.type<span class="o">=</span>data,ceph.vdo<span class="o">=</span><span class="m">0</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>sudo<span class="w"> </span>lvs<span class="w"> </span>-o<span class="w"> </span>lv_tags<span class="w"> </span>vg00/journallv1
<span class="w"> </span>LV<span class="w"> </span>Tags<span class="w"> </span>
<span class="w"> </span>ceph.cephx_lockbox_secret<span class="o">=</span>,ceph.cluster_fsid<span class="o">=</span>ed62dbfb-f0f7-4b13-ace0-4ccea0c4a6bf,ceph.cluster_name<span class="o">=</span>ceph,ceph.crush_device_class<span class="o">=</span>None,ceph.data_device<span class="o">=</span>/dev/vg00/datalv1,ceph.data_uuid<span class="o">=</span>W3h12f-xg3y-ij1Z-F70h-yx2n-SyD9-ioNEC7,ceph.encrypted<span class="o">=</span><span class="m">0</span>,ceph.journal_device<span class="o">=</span>/dev/vg00/journallv1,ceph.journal_uuid<span class="o">=</span>XqM6CP-embw-gIfs-UN2Q-gRDR-TVWP-y1q5Te,ceph.osd_fsid<span class="o">=</span>38e7bfb3-ad57-4979-b8a9-3f875e6cb6f5,ceph.osd_id<span class="o">=</span><span class="m">8</span>,ceph.type<span class="o">=</span>journal,ceph.vdo<span class="o">=</span><span class="m">0</span>
</code></pre></div>
<ol>
<li>Remove the old datatag</br><br>
<code>lvchange --deltag ceph.osd_id=8 vg00/datalv1</code><br>
<code>lvchange --deltag ceph.osd_id=8 vg00/journallv1</code></li>
<li>Add the correct datatag</br><br>
<code>lvchange --addtag ceph.osd_id=2 vg00/datalv1</code><br>
<code>lvchange --addtag ceph.osd_id=2 vg00/journallv1</code></li>
</ol>
<p>And et voilà</p>
<div class="highlight"><pre><span></span><code><span class="n">$</span><span class="w"> </span><span class="n">sudo</span><span class="w"> </span><span class="n">ceph</span><span class="o">-</span><span class="n">volume</span><span class="w"> </span><span class="n">lvm</span><span class="w"> </span><span class="n">trigger</span><span class="w"> </span><span class="mi">2</span><span class="mf">-38e7</span><span class="n">bfb3</span><span class="o">-</span><span class="n">ad57</span><span class="mi">-4979</span><span class="o">-</span><span class="n">b8a9</span><span class="mi">-3</span><span class="n">f875e6cb6f5</span>
<span class="n">Running</span><span class="w"> </span><span class="n">command</span><span class="o">:</span><span class="w"> </span><span class="n">mount</span><span class="w"> </span><span class="o">-</span><span class="n">t</span><span class="w"> </span><span class="n">xfs</span><span class="w"> </span><span class="o">-</span><span class="n">o</span><span class="w"> </span><span class="n">rw</span><span class="p">,</span><span class="n">noatime</span><span class="p">,</span><span class="n">inode64</span><span class="w"> </span><span class="o">/</span><span class="n">dev</span><span class="o">/</span><span class="n">vg00</span><span class="o">/</span><span class="n">datalv1</span><span class="w"> </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">ceph</span><span class="o">/</span><span class="n">osd</span><span class="o">/</span><span class="n">ceph</span><span class="mi">-2</span>
<span class="n">Running</span><span class="w"> </span><span class="n">command</span><span class="o">:</span><span class="w"> </span><span class="n">ln</span><span class="w"> </span><span class="o">-</span><span class="n">snf</span><span class="w"> </span><span class="o">/</span><span class="n">dev</span><span class="o">/</span><span class="n">vg00</span><span class="o">/</span><span class="n">journallv1</span><span class="w"> </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">ceph</span><span class="o">/</span><span class="n">osd</span><span class="o">/</span><span class="n">ceph</span><span class="mi">-2</span><span class="o">/</span><span class="n">journal</span>
<span class="n">Running</span><span class="w"> </span><span class="n">command</span><span class="o">:</span><span class="w"> </span><span class="n">chown</span><span class="w"> </span><span class="o">-</span><span class="n">R</span><span class="w"> </span><span class="n">ceph</span><span class="o">:</span><span class="n">ceph</span><span class="w"> </span><span class="o">/</span><span class="n">dev</span><span class="o">/</span><span class="n">dm</span><span class="mi">-2</span>
<span class="n">Running</span><span class="w"> </span><span class="n">command</span><span class="o">:</span><span class="w"> </span><span class="n">systemctl</span><span class="w"> </span><span class="n">enable</span><span class="w"> </span><span class="n">ceph</span><span class="o">-</span><span class="n">volume</span><span class="p">@</span><span class="n">lvm</span><span class="mi">-2</span><span class="mf">-38e7</span><span class="n">bfb3</span><span class="o">-</span><span class="n">ad57</span><span class="mi">-4979</span><span class="o">-</span><span class="n">b8a9</span><span class="mi">-3</span><span class="n">f875e6cb6f5</span>
<span class="w"> </span><span class="nl">stderr</span><span class="p">:</span><span class="w"> </span><span class="n">Created</span><span class="w"> </span><span class="n">symlink</span><span class="w"> </span><span class="n">from</span><span class="w"> </span><span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">systemd</span><span class="o">/</span><span class="n">system</span><span class="o">/</span><span class="n">multi</span><span class="o">-</span><span class="n">user</span><span class="p">.</span><span class="n">target</span><span class="p">.</span><span class="n">wants</span><span class="o">/</span><span class="n">ceph</span><span class="o">-</span><span class="n">volume</span><span class="p">@</span><span class="n">lvm</span><span class="mi">-2</span><span class="mf">-38e7</span><span class="n">bfb3</span><span class="o">-</span><span class="n">ad57</span><span class="mi">-4979</span><span class="o">-</span><span class="n">b8a9</span><span class="mi">-3</span><span class="n">f875e6cb6f5</span><span class="p">.</span><span class="n">service</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">lib</span><span class="o">/</span><span class="n">systemd</span><span class="o">/</span><span class="n">system</span><span class="o">/</span><span class="n">ceph</span><span class="o">-</span><span class="n">volume</span><span class="p">@.</span><span class="n">service</span><span class="p">.</span>
<span class="n">Running</span><span class="w"> </span><span class="n">command</span><span class="o">:</span><span class="w"> </span><span class="n">systemctl</span><span class="w"> </span><span class="n">start</span><span class="w"> </span><span class="n">ceph</span><span class="o">-</span><span class="n">osd</span><span class="mi">@2</span>
<span class="o">--></span><span class="w"> </span><span class="n">ceph</span><span class="o">-</span><span class="n">volume</span><span class="w"> </span><span class="n">lvm</span><span class="w"> </span><span class="n">activate</span><span class="w"> </span><span class="n">successful</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">osd</span><span class="w"> </span><span class="n">ID</span><span class="o">:</span><span class="w"> </span><span class="mi">2</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="o">$</span><span class="w"> </span><span class="n">sudo</span><span class="w"> </span><span class="n">cat</span><span class="w"> </span><span class="o">/</span><span class="k">var</span><span class="o">/</span><span class="nb">log</span><span class="o">/</span><span class="n">ceph</span><span class="o">/</span><span class="n">ceph</span><span class="o">-</span><span class="n">osd</span><span class="o">.</span><span class="mf">2.</span><span class="n">log</span>
<span class="mi">2018</span><span class="o">-</span><span class="mi">07</span><span class="o">-</span><span class="mi">04</span><span class="w"> </span><span class="mi">19</span><span class="p">:</span><span class="mi">40</span><span class="p">:</span><span class="mf">04.075588</span><span class="w"> </span><span class="mi">7</span><span class="n">fa9cbf6bd80</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="n">set</span><span class="w"> </span><span class="n">uid</span><span class="p">:</span><span class="n">gid</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="mi">167</span><span class="p">:</span><span class="mi">167</span><span class="w"> </span><span class="p">(</span><span class="n">ceph</span><span class="p">:</span><span class="n">ceph</span><span class="p">)</span><span class="w"> </span>
<span class="mi">2018</span><span class="o">-</span><span class="mi">07</span><span class="o">-</span><span class="mi">04</span><span class="w"> </span><span class="mi">19</span><span class="p">:</span><span class="mi">40</span><span class="p">:</span><span class="mf">04.075608</span><span class="w"> </span><span class="mi">7</span><span class="n">fa9cbf6bd80</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="n">ceph</span><span class="w"> </span><span class="n">version</span><span class="w"> </span><span class="mf">12.2</span><span class="o">.</span><span class="mi">5</span><span class="w"> </span><span class="p">(</span><span class="n">cad919881333ac92274171586c827e01f554a70a</span><span class="p">)</span><span class="w"> </span><span class="n">luminous</span><span class="w"> </span><span class="p">(</span><span class="n">stable</span><span class="p">),</span><span class="w"> </span><span class="n">process</span><span class="w"> </span><span class="p">(</span><span class="n">unknown</span><span class="p">),</span><span class="w"> </span><span class="n">pid</span><span class="w"> </span><span class="mi">4165</span><span class="w"> </span>
<span class="mi">2018</span><span class="o">-</span><span class="mi">07</span><span class="o">-</span><span class="mi">04</span><span class="w"> </span><span class="mi">19</span><span class="p">:</span><span class="mi">40</span><span class="p">:</span><span class="mf">04.080821</span><span class="w"> </span><span class="mi">7</span><span class="n">fa9cbf6bd80</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="n">pidfile_write</span><span class="p">:</span><span class="w"> </span><span class="n">ignore</span><span class="w"> </span><span class="n">empty</span><span class="w"> </span><span class="o">--</span><span class="n">pid</span><span class="o">-</span><span class="n">file</span><span class="w"> </span>
<span class="mi">2018</span><span class="o">-</span><span class="mi">07</span><span class="o">-</span><span class="mi">04</span><span class="w"> </span><span class="mi">19</span><span class="p">:</span><span class="mi">40</span><span class="p">:</span><span class="mf">04.109636</span><span class="w"> </span><span class="mi">7</span><span class="n">fa9cbf6bd80</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="nb">load</span><span class="p">:</span><span class="w"> </span><span class="n">jerasure</span><span class="w"> </span><span class="nb">load</span><span class="p">:</span><span class="w"> </span><span class="n">lrc</span><span class="w"> </span><span class="nb">load</span><span class="p">:</span><span class="w"> </span><span class="n">isa</span><span class="w"> </span>
<span class="mi">2018</span><span class="o">-</span><span class="mi">07</span><span class="o">-</span><span class="mi">04</span><span class="w"> </span><span class="mi">19</span><span class="p">:</span><span class="mi">40</span><span class="p">:</span><span class="mf">04.110273</span><span class="w"> </span><span class="mi">7</span><span class="n">fa9cbf6bd80</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="n">filestore</span><span class="p">(</span><span class="o">/</span><span class="k">var</span><span class="o">/</span><span class="n">lib</span><span class="o">/</span><span class="n">ceph</span><span class="o">/</span><span class="n">osd</span><span class="o">/</span><span class="n">ceph</span><span class="o">-</span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="n">backend</span><span class="w"> </span><span class="n">xfs</span><span class="w"> </span><span class="p">(</span><span class="n">magic</span><span class="w"> </span><span class="mh">0x58465342</span><span class="p">)</span><span class="w"> </span>
<span class="mi">2018</span><span class="o">-</span><span class="mi">07</span><span class="o">-</span><span class="mi">04</span><span class="w"> </span><span class="mi">19</span><span class="p">:</span><span class="mi">40</span><span class="p">:</span><span class="mf">04.121305</span><span class="w"> </span><span class="mi">7</span><span class="n">fa9cbf6bd80</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="n">filestore</span><span class="p">(</span><span class="o">/</span><span class="k">var</span><span class="o">/</span><span class="n">lib</span><span class="o">/</span><span class="n">ceph</span><span class="o">/</span><span class="n">osd</span><span class="o">/</span><span class="n">ceph</span><span class="o">-</span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="n">start</span><span class="w"> </span><span class="n">omap</span><span class="w"> </span><span class="n">initiation</span>
<span class="p">[</span><span class="o">...</span><span class="p">]</span><span class="w"> </span>
</code></pre></div>selinux - change default type2018-04-12T17:19:00+02:002018-04-12T17:19:00+02:00rmicheltag:blog.devnu11.net,2018-04-12:/2018/04/selinux-change-default-type.html<div class="highlight"><pre><span></span><code>$<span class="w"> </span>matchpathcon<span class="w"> </span>/tftpboot
/tftpboot<span class="w"> </span>system_u:object_r:tftpdir_t:s0
$<span class="w"> </span>semanage<span class="w"> </span>fcontext<span class="w"> </span>-a<span class="w"> </span>-t<span class="w"> </span>tftpdir_rw_t<span class="w"> </span><span class="s2">"/srv/tftp(/.*)?"</span>
$<span class="w"> </span>restorecon<span class="w"> </span>-Rv<span class="w"> </span>/srv/tftp
</code></pre></div>ceph-ansible: minimal containerized deployment (docker)2018-02-28T09:49:00+01:002018-02-28T09:49:00+01:00rmicheltag:blog.devnu11.net,2018-02-28:/2018/02/ceph-ansible-minimal-docker-deployment.html<p>tested with <a href="https://github.com/ceph/ceph-ansible/tree/v3.0.26">v3.0.26</a></p>
<p><strong>group_vars/all.yml</strong></p>
<div class="highlight"><pre><span></span><code><span class="nt">monitor_interface</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">eth1</span>
<span class="nt">radosgw_interface</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">eth1</span>
<span class="nt">public_network</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">10.20.30.0/24</span>
<span class="nt">cluster_network</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">192.168.121.0/24</span>
<span class="nt">ceph_conf_overrides</span><span class="p">:</span>
<span class="w"> </span><span class="nt">osd</span><span class="p">:</span>
<span class="w"> </span><span class="nt">osd scrub during recovery</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">false</span>
<span class="nt">ceph_docker_image</span><span class="p">:</span><span class="w"> </span><span class="s">"ceph/daemon"</span>
<span class="nt">ceph_docker_image_tag</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">latest</span>
<span class="nt">ceph_docker_registry</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">10.20.30.1:5000</span>
<span class="nt">containerized_deployment</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
</code></pre></div>
<p><strong>group_vars/osds.yml</strong></p>
<div class="highlight"><pre><span></span><code><span class="nt">crush_location</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
<span class="nt">osd_crush_location …</span></code></pre></div><p>tested with <a href="https://github.com/ceph/ceph-ansible/tree/v3.0.26">v3.0.26</a></p>
<p><strong>group_vars/all.yml</strong></p>
<div class="highlight"><pre><span></span><code><span class="nt">monitor_interface</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">eth1</span>
<span class="nt">radosgw_interface</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">eth1</span>
<span class="nt">public_network</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">10.20.30.0/24</span>
<span class="nt">cluster_network</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">192.168.121.0/24</span>
<span class="nt">ceph_conf_overrides</span><span class="p">:</span>
<span class="w"> </span><span class="nt">osd</span><span class="p">:</span>
<span class="w"> </span><span class="nt">osd scrub during recovery</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">false</span>
<span class="nt">ceph_docker_image</span><span class="p">:</span><span class="w"> </span><span class="s">"ceph/daemon"</span>
<span class="nt">ceph_docker_image_tag</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">latest</span>
<span class="nt">ceph_docker_registry</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">10.20.30.1:5000</span>
<span class="nt">containerized_deployment</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
</code></pre></div>
<p><strong>group_vars/osds.yml</strong></p>
<div class="highlight"><pre><span></span><code><span class="nt">crush_location</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
<span class="nt">osd_crush_location</span><span class="p">:</span><span class="w"> </span><span class="s">"\"root={{</span><span class="nv"> </span><span class="s">ceph_crush_root</span><span class="nv"> </span><span class="s">}}</span><span class="nv"> </span><span class="s">rack={{</span><span class="nv"> </span><span class="s">ceph_crush_rack</span><span class="nv"> </span><span class="s">}}</span><span class="nv"> </span><span class="s">host={{</span><span class="nv"> </span><span class="s">ansible_hostname</span><span class="nv"> </span><span class="s">}}\""</span>
<span class="nt">osd_objectstore</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">bluestore</span>
<span class="nt">osd_scenario</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">non-collocated</span>
<span class="nt">devices</span><span class="p">:</span>
<span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">/dev/sdb</span>
<span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">/dev/sdc</span>
<span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">/dev/sdd</span>
<span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">/dev/sde</span>
<span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">/dev/sdf</span>
<span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">/dev/sdg</span>
<span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">/dev/sdh</span>
<span class="nt">dedicated_devices</span><span class="p">:</span>
<span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">/dev/nvme0n1</span>
<span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">/dev/nvme0n1</span>
<span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">/dev/nvme0n1</span>
<span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">/dev/nvme0n1</span>
<span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">/dev/nvme0n1</span>
<span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">/dev/nvme0n1</span>
<span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">/dev/nvme0n1</span>
</code></pre></div>
<p><strong>group_vars/mons.yml (optional)</strong></p>
<div class="highlight"><pre><span></span><code><span class="nt">openstack_config</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
<span class="nt">openstack_glance_pool</span><span class="p">:</span>
<span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">images</span>
<span class="w"> </span><span class="nt">pg_num</span><span class="p">:</span><span class="w"> </span><span class="s">"{{</span><span class="nv"> </span><span class="s">osd_pool_default_pg_num</span><span class="nv"> </span><span class="s">}}"</span>
<span class="w"> </span><span class="nt">rule_name</span><span class="p">:</span><span class="w"> </span><span class="s">""</span>
<span class="nt">openstack_pools</span><span class="p">:</span>
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="s">"{{</span><span class="nv"> </span><span class="s">openstack_glance_pool</span><span class="nv"> </span><span class="s">}}"</span>
</code></pre></div>SUSE Cloud – missing cinder key on computes - part22017-12-07T06:49:00+01:002017-12-07T06:49:00+01:00rmicheltag:blog.devnu11.net,2017-12-07:/2017/12/suse-cloud-missing-cinder-key-on-computes-part2.html<p>I've found the root cause for the <a href="http://blog.devnu11.net/2017/11/suse-cloud-missing-cinder-key-on-computes/">missing cinder key</a> on the computes.</p>
<p><strong>chef-client output - without any files:</strong></p>
<div class="highlight"><pre><span></span><code><span class="cp">[</span><span class="mi">2017</span><span class="o">-</span><span class="mi">11</span><span class="o">-</span><span class="mi">30</span><span class="nx">T09</span><span class="p">:</span><span class="mi">37</span><span class="p">:</span><span class="mi">33</span><span class="o">+</span><span class="mi">01</span><span class="p">:</span><span class="mi">00</span><span class="cp">]</span><span class="w"> </span><span class="nt">INFO</span><span class="o">:</span><span class="w"> </span><span class="nt">Processing</span><span class="w"> </span><span class="nt">package</span><span class="cp">[</span><span class="nx">ceph</span><span class="na">-common</span><span class="cp">]</span><span class="w"> </span><span class="nt">action</span><span class="w"> </span><span class="nt">install</span><span class="w"> </span><span class="o">(</span><span class="nt">nova</span><span class="p">::</span><span class="nd">ceph</span><span class="w"> </span><span class="nt">line</span><span class="w"> </span><span class="nt">50</span><span class="o">)</span>
<span class="cp">[</span><span class="mi">2017</span><span class="o">-</span><span class="mi">11</span><span class="o">-</span><span class="mi">30</span><span class="nx">T09</span><span class="p">:</span><span class="mi">37</span><span class="p">:</span><span class="mi">33</span><span class="o">+</span><span class="mi">01</span><span class="p">:</span><span class="mi">00</span><span class="cp">]</span><span class="w"> </span><span class="nt">INFO</span><span class="o">:</span><span class="w"> </span><span class="nt">Ceph</span><span class="w"> </span><span class="nt">configuration</span><span class="w"> </span><span class="nt">file</span><span class="w"> </span><span class="nt">is …</span></code></pre></div><p>I've found the root cause for the <a href="http://blog.devnu11.net/2017/11/suse-cloud-missing-cinder-key-on-computes/">missing cinder key</a> on the computes.</p>
<p><strong>chef-client output - without any files:</strong></p>
<div class="highlight"><pre><span></span><code><span class="cp">[</span><span class="mi">2017</span><span class="o">-</span><span class="mi">11</span><span class="o">-</span><span class="mi">30</span><span class="nx">T09</span><span class="p">:</span><span class="mi">37</span><span class="p">:</span><span class="mi">33</span><span class="o">+</span><span class="mi">01</span><span class="p">:</span><span class="mi">00</span><span class="cp">]</span><span class="w"> </span><span class="nt">INFO</span><span class="o">:</span><span class="w"> </span><span class="nt">Processing</span><span class="w"> </span><span class="nt">package</span><span class="cp">[</span><span class="nx">ceph</span><span class="na">-common</span><span class="cp">]</span><span class="w"> </span><span class="nt">action</span><span class="w"> </span><span class="nt">install</span><span class="w"> </span><span class="o">(</span><span class="nt">nova</span><span class="p">::</span><span class="nd">ceph</span><span class="w"> </span><span class="nt">line</span><span class="w"> </span><span class="nt">50</span><span class="o">)</span>
<span class="cp">[</span><span class="mi">2017</span><span class="o">-</span><span class="mi">11</span><span class="o">-</span><span class="mi">30</span><span class="nx">T09</span><span class="p">:</span><span class="mi">37</span><span class="p">:</span><span class="mi">33</span><span class="o">+</span><span class="mi">01</span><span class="p">:</span><span class="mi">00</span><span class="cp">]</span><span class="w"> </span><span class="nt">INFO</span><span class="o">:</span><span class="w"> </span><span class="nt">Ceph</span><span class="w"> </span><span class="nt">configuration</span><span class="w"> </span><span class="nt">file</span><span class="w"> </span><span class="nt">is</span><span class="w"> </span><span class="nt">missing</span><span class="o">;</span><span class="w"> </span><span class="nt">skipping</span><span class="w"> </span><span class="nt">the</span><span class="w"> </span><span class="nt">ceph</span><span class="w"> </span><span class="nt">setup</span><span class="w"> </span><span class="nt">for</span><span class="w"> </span><span class="nt">backend</span><span class="w"> </span><span class="nt">ceph-hdd</span>
<span class="cp">[</span><span class="mi">2017</span><span class="o">-</span><span class="mi">11</span><span class="o">-</span><span class="mi">30</span><span class="nx">T09</span><span class="p">:</span><span class="mi">37</span><span class="p">:</span><span class="mi">33</span><span class="o">+</span><span class="mi">01</span><span class="p">:</span><span class="mi">00</span><span class="cp">]</span><span class="w"> </span><span class="nt">INFO</span><span class="o">:</span><span class="w"> </span><span class="nt">Ceph</span><span class="w"> </span><span class="nt">configuration</span><span class="w"> </span><span class="nt">file</span><span class="w"> </span><span class="nt">is</span><span class="w"> </span><span class="nt">missing</span><span class="o">;</span><span class="w"> </span><span class="nt">skipping</span><span class="w"> </span><span class="nt">the</span><span class="w"> </span><span class="nt">ceph</span><span class="w"> </span><span class="nt">setup</span><span class="w"> </span><span class="nt">for</span><span class="w"> </span><span class="nt">backend</span><span class="w"> </span><span class="nt">ceph-ssd</span>
</code></pre></div>
<p><strong>chef-client output - only with ceph.conf:</strong></p>
<div class="highlight"><pre><span></span><code>[<span class="mi">2017</span><span class="o">-</span><span class="mi">11</span><span class="o">-</span><span class="mi">30</span><span class="nv">T09</span>:<span class="mi">40</span>:<span class="mi">00</span><span class="o">+</span><span class="mi">01</span>:<span class="mi">00</span>]<span class="w"> </span><span class="nv">INFO</span>:<span class="w"> </span><span class="nv">Processing</span><span class="w"> </span><span class="nv">package</span>[<span class="nv">ceph</span><span class="o">-</span><span class="nv">common</span>]<span class="w"> </span><span class="nv">action</span><span class="w"> </span><span class="nv">install</span><span class="w"> </span><span class="ss">(</span><span class="nv">nova</span>::<span class="nv">ceph</span><span class="w"> </span><span class="nv">line</span><span class="w"> </span><span class="mi">50</span><span class="ss">)</span>
[<span class="mi">2017</span><span class="o">-</span><span class="mi">11</span><span class="o">-</span><span class="mi">30</span><span class="nv">T09</span>:<span class="mi">40</span>:<span class="mi">00</span><span class="o">+</span><span class="mi">01</span>:<span class="mi">00</span>]<span class="w"> </span><span class="nv">INFO</span>:<span class="w"> </span><span class="nv">Ceph</span><span class="w"> </span><span class="nv">user</span><span class="w"> </span><span class="nv">keyring</span><span class="w"> </span><span class="nv">wasn</span><span class="err">'t provided for backend ceph-hdd</span>
[<span class="mi">2017</span><span class="o">-</span><span class="mi">11</span><span class="o">-</span><span class="mi">30</span><span class="nv">T09</span>:<span class="mi">40</span>:<span class="mi">00</span><span class="o">+</span><span class="mi">01</span>:<span class="mi">00</span>]<span class="w"> </span><span class="nv">INFO</span>:<span class="w"> </span><span class="nv">Ceph</span><span class="w"> </span><span class="nv">user</span><span class="w"> </span><span class="nv">keyring</span><span class="w"> </span><span class="nv">wasn</span><span class="err">'t provided for backend ceph-ssd</span>
</code></pre></div>
<p>Still not the right secret. The correct name should be "ceph crowbar-#uuid# name"</p>
<div class="highlight"><pre><span></span><code><span class="c">root@d98</span><span class="nb">-</span><span class="c">f2</span><span class="nb">-</span><span class="c">b3</span><span class="nb">-</span><span class="c">9e</span><span class="nb">-</span><span class="c">d6</span><span class="nb">-</span><span class="c">30:~ # virsh secret</span><span class="nb">-</span><span class="c">list</span>
<span class="c"> UUID Usage</span>
<span class="nb">--------------------------------------------------------------------------------</span>
<span class="c"> 5b7c1b36</span><span class="nb">-</span><span class="c">9093</span><span class="nb">-</span><span class="c">4a13</span><span class="nb">-</span><span class="c">b14d</span><span class="nb">-</span><span class="c">da8b8cbdd8a6 ceph client</span><span class="nt">.</span><span class="c">cinder secret</span>
</code></pre></div>
<p><strong>chef-client output - now with the key and the ceph.conf:</strong></p>
<div class="highlight"><pre><span></span><code><span class="p">[</span><span class="mi">2017</span><span class="o">-</span><span class="mi">11</span><span class="o">-</span><span class="mi">30</span><span class="n">T09</span><span class="p">:</span><span class="mi">51</span><span class="p">:</span><span class="mi">16</span><span class="o">+</span><span class="mi">01</span><span class="p">:</span><span class="mi">00</span><span class="p">]</span><span class="w"> </span><span class="n">INFO</span><span class="p">:</span><span class="w"> </span><span class="n">Processing</span><span class="w"> </span><span class="n">package</span><span class="p">[</span><span class="n">ceph</span><span class="o">-</span><span class="n">common</span><span class="p">]</span><span class="w"> </span><span class="n">action</span><span class="w"> </span><span class="n">install</span><span class="w"> </span><span class="p">(</span><span class="n">nova</span><span class="p">::</span><span class="n">ceph</span><span class="w"> </span><span class="n">line</span><span class="w"> </span><span class="mi">50</span><span class="p">)</span>
<span class="p">[</span><span class="mi">2017</span><span class="o">-</span><span class="mi">11</span><span class="o">-</span><span class="mi">30</span><span class="n">T09</span><span class="p">:</span><span class="mi">51</span><span class="p">:</span><span class="mi">16</span><span class="o">+</span><span class="mi">01</span><span class="p">:</span><span class="mi">00</span><span class="p">]</span><span class="w"> </span><span class="n">WARN</span><span class="p">:</span><span class="w"> </span><span class="n">Cloning</span><span class="w"> </span><span class="n">resource</span><span class="w"> </span><span class="n">attributes</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">ruby_block</span><span class="p">[</span><span class="n">save</span><span class="w"> </span><span class="n">nova</span><span class="w"> </span><span class="n">key</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">libvirt</span><span class="w"> </span><span class="n">secret</span><span class="p">]</span><span class="w"> </span><span class="n">from</span><span class="w"> </span><span class="n">prior</span><span class="w"> </span><span class="n">resource</span><span class="w"> </span><span class="p">(</span><span class="n">CHEF</span><span class="o">-</span><span class="mi">3694</span><span class="p">)</span>
<span class="p">[</span><span class="mi">2017</span><span class="o">-</span><span class="mi">11</span><span class="o">-</span><span class="mi">30</span><span class="n">T09</span><span class="p">:</span><span class="mi">51</span><span class="p">:</span><span class="mi">16</span><span class="o">+</span><span class="mi">01</span><span class="p">:</span><span class="mi">00</span><span class="p">]</span><span class="w"> </span><span class="n">WARN</span><span class="p">:</span><span class="w"> </span><span class="n">Previous</span><span class="w"> </span><span class="n">ruby_block</span><span class="p">[</span><span class="n">save</span><span class="w"> </span><span class="n">nova</span><span class="w"> </span><span class="n">key</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">libvirt</span><span class="w"> </span><span class="n">secret</span><span class="p">]:</span><span class="w"> </span><span class="o">/</span><span class="k">var</span><span class="o">/</span><span class="n">chef</span><span class="o">/</span><span class="n">cache</span><span class="o">/</span><span class="n">cookbooks</span><span class="o">/</span><span class="n">nova</span><span class="o">/</span><span class="n">recipes</span><span class="o">/</span><span class="n">ceph</span><span class="o">.</span><span class="n">rb</span><span class="p">:</span><span class="mi">94</span><span class="p">:</span><span class="ow">in</span><span class="w"> </span><span class="err">`</span><span class="n">block</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="n">from_file</span><span class="s1">'</span>
<span class="p">[</span><span class="mi">2017</span><span class="o">-</span><span class="mi">11</span><span class="o">-</span><span class="mi">30</span><span class="n">T09</span><span class="p">:</span><span class="mi">51</span><span class="p">:</span><span class="mi">16</span><span class="o">+</span><span class="mi">01</span><span class="p">:</span><span class="mi">00</span><span class="p">]</span><span class="w"> </span><span class="n">WARN</span><span class="p">:</span><span class="w"> </span><span class="n">Current</span><span class="w"> </span><span class="n">ruby_block</span><span class="p">[</span><span class="n">save</span><span class="w"> </span><span class="n">nova</span><span class="w"> </span><span class="n">key</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">libvirt</span><span class="w"> </span><span class="n">secret</span><span class="p">]:</span><span class="w"> </span><span class="o">/</span><span class="k">var</span><span class="o">/</span><span class="n">chef</span><span class="o">/</span><span class="n">cache</span><span class="o">/</span><span class="n">cookbooks</span><span class="o">/</span><span class="n">nova</span><span class="o">/</span><span class="n">recipes</span><span class="o">/</span><span class="n">ceph</span><span class="o">.</span><span class="n">rb</span><span class="p">:</span><span class="mi">94</span><span class="p">:</span><span class="ow">in</span><span class="w"> </span><span class="err">`</span><span class="n">block</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="n">from_file</span><span class="s1">'</span>
</code></pre></div>
<p>Yeah. Finally!</p>
<div class="highlight"><pre><span></span><code><span class="c">root@d98</span><span class="nb">-</span><span class="c">f2</span><span class="nb">-</span><span class="c">b3</span><span class="nb">-</span><span class="c">9e</span><span class="nb">-</span><span class="c">d6</span><span class="nb">-</span><span class="c">30:~ # virsh secret</span><span class="nb">-</span><span class="c">list</span>
<span class="c"> UUID Usage</span>
<span class="nb">--------------------------------------------------------------------------------</span>
<span class="c"> 5b7c1b36</span><span class="nb">-</span><span class="c">9093</span><span class="nb">-</span><span class="c">4a13</span><span class="nb">-</span><span class="c">b14d</span><span class="nb">-</span><span class="c">da8b8cbdd8a6 ceph crowbar</span><span class="nb">-</span><span class="c">5b7c1b36</span><span class="nb">-</span><span class="c">9093</span><span class="nb">-</span><span class="c">4a13</span><span class="nb">-</span><span class="c">b14d</span><span class="nb">-</span><span class="c">da8b8cbdd8a6 secret</span>
<span class="c"> 7003682d</span><span class="nb">-</span><span class="c">80fe</span><span class="nb">-</span><span class="c">4258</span><span class="nb">-</span><span class="c">b2bb</span><span class="nb">-</span><span class="c">e6c1b628aa5e ceph crowbar</span><span class="nb">-</span><span class="c">7003682d</span><span class="nb">-</span><span class="c">80fe</span><span class="nb">-</span><span class="c">4258</span><span class="nb">-</span><span class="c">b2bb</span><span class="nb">-</span><span class="c">e6c1b628aa5e secret</span>
</code></pre></div>ovirt/rhev/rhv - stucked/locked task2017-12-06T20:59:00+01:002017-12-06T20:59:00+01:00rmicheltag:blog.devnu11.net,2017-12-06:/2017/12/ovirt-rhev-rhv-stucked-locked-task.html<p>Query locked elements:</p>
<div class="highlight"><pre><span></span><code>PGPASSWORD=password /usr/share/ovirt-engine/setup/dbutils/unlock_entity.sh -d engine -u engine -t [all|disk|vm|template] -q
</code></pre></div>
<p>Remove lock:</p>
<div class="highlight"><pre><span></span><code>PGPASSWORD=password /usr/share/ovirt-engine/setup/dbutils/unlock_entity.sh -d engine -u engine -t [all|disk|vm|template] -r
</code></pre></div>ovirt/rhev/rhv - custom branding (web ui)2017-12-06T20:36:00+01:002017-12-06T20:36:00+01:00rmicheltag:blog.devnu11.net,2017-12-06:/2017/12/ovirt-rhv-custom-branding.html<p><strong>Step 1 - create a custom folder in /etc/ovirt-engine/branding</strong></p>
<div class="highlight"><pre><span></span><code><span class="o">[</span>root@rev1<span class="w"> </span>branding<span class="o">]</span><span class="c1"># ll</span>
total<span class="w"> </span><span class="m">0</span>
lrwxrwxrwx.<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="o">[</span>..<span class="o">]</span><span class="w"> </span><span class="m">00</span>-ovirt.brand<span class="w"> </span>-><span class="w"> </span>/usr/share/ovirt-engine/branding/ovirt.brand
lrwxrwxrwx.<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="o">[</span>..<span class="o">]</span><span class="w"> </span><span class="m">50</span>-rhev-2.brand<span class="w"> </span>-><span class="w"> </span>/usr/share/ovirt-engine/branding/rhev-2.brand
drwxr-xr-x.<span class="w"> </span><span class="m">3</span><span class="w"> </span><span class="o">[</span>..<span class="o">]</span><span class="w"> </span><span class="m">99</span>-custom.brand
</code></pre></div>
<p><strong>Step 2 - copy your layout and create …</strong></p><p><strong>Step 1 - create a custom folder in /etc/ovirt-engine/branding</strong></p>
<div class="highlight"><pre><span></span><code><span class="o">[</span>root@rev1<span class="w"> </span>branding<span class="o">]</span><span class="c1"># ll</span>
total<span class="w"> </span><span class="m">0</span>
lrwxrwxrwx.<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="o">[</span>..<span class="o">]</span><span class="w"> </span><span class="m">00</span>-ovirt.brand<span class="w"> </span>-><span class="w"> </span>/usr/share/ovirt-engine/branding/ovirt.brand
lrwxrwxrwx.<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="o">[</span>..<span class="o">]</span><span class="w"> </span><span class="m">50</span>-rhev-2.brand<span class="w"> </span>-><span class="w"> </span>/usr/share/ovirt-engine/branding/rhev-2.brand
drwxr-xr-x.<span class="w"> </span><span class="m">3</span><span class="w"> </span><span class="o">[</span>..<span class="o">]</span><span class="w"> </span><span class="m">99</span>-custom.brand
</code></pre></div>
<p><strong>Step 2 - copy your layout and create a 'branding.properties'</strong></p>
<div class="highlight"><pre><span></span><code><span class="o">[</span>root@rev1<span class="w"> </span>branding<span class="o">]</span><span class="c1"># ll 99-custom.brand/</span>
total<span class="w"> </span><span class="m">8</span>
-rw-r--r--.<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="o">[</span>..<span class="o">]</span><span class="w"> </span>branding.properties
-rw-r--r--.<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="o">[</span>..<span class="o">]</span><span class="w"> </span>common.css
drwxr-xr-x.<span class="w"> </span><span class="m">2</span><span class="w"> </span><span class="o">[</span>..<span class="o">]</span><span class="w"> </span>images
</code></pre></div>
<p><strong>Step 3 - branding.properties - don't remove the version parameter</strong></p>
<div class="highlight"><pre><span></span><code><span class="o">[</span>root@rev1<span class="w"> </span>branding<span class="o">]</span><span class="c1"># cat 99-custom.brand/branding.properties </span>
<span class="c1">#style sheets.</span>
<span class="nv">userportal_css</span><span class="o">=</span>common.css
<span class="nv">webadmin_css</span><span class="o">=</span>common.css
<span class="nv">welcome_css</span><span class="o">=</span>common.css
<span class="nv">version</span><span class="o">=</span><span class="m">2</span>
</code></pre></div>
<p><strong>Step 4 - my example for a common.css - we only want to replace the logo!</strong></p>
<div class="highlight"><pre><span></span><code><span class="o">[</span><span class="nt">root</span><span class="p">@</span><span class="k">rev1</span><span class="w"> </span><span class="nt">branding</span><span class="o">]</span><span class="err">#</span><span class="w"> </span><span class="nt">cat</span><span class="w"> </span><span class="nt">99-custom</span><span class="p">.</span><span class="nc">brand</span><span class="o">/</span><span class="nt">common</span><span class="p">.</span><span class="nc">css</span><span class="w"> </span>
<span class="c">/* LoginSectionView.ui.xml:</span>
<span class="c"> app logo, positioned in the top right of login screen */</span>
<span class="p">.</span><span class="nc">obrand_loginPageLogoImage</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nt">background-image</span><span class="o">:</span><span class="w"> </span><span class="nt">url</span><span class="o">(</span><span class="nt">images</span><span class="o">/</span><span class="nt">logo</span><span class="p">.</span><span class="nc">png</span><span class="o">);</span>
<span class="w"> </span><span class="nt">width</span><span class="o">:</span><span class="w"> </span><span class="nt">137px</span><span class="o">;</span>
<span class="w"> </span><span class="nt">height</span><span class="o">:</span><span class="w"> </span><span class="nt">44px</span><span class="o">;</span>
<span class="w"> </span><span class="nt">border</span><span class="o">:</span><span class="w"> </span><span class="nt">0px</span><span class="o">;</span>
<span class="w"> </span><span class="nt">display</span><span class="o">:</span><span class="w"> </span><span class="nt">block</span><span class="o">;</span>
<span class="p">}</span>
</code></pre></div>
<p><strong>Step 5 - restart ovirt-engine and check the sourcecode</strong></p>
<div class="highlight"><pre><span></span><code><span class="c1"># systemctl restart ovirt-engine</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code>[...]
<span class="p"><</span><span class="nt">link</span> <span class="na">rel</span><span class="o">=</span><span class="s">"stylesheet"</span> <span class="na">type</span><span class="o">=</span><span class="s">"text/css"</span> <span class="na">href</span><span class="o">=</span><span class="s">"/ovirt-engine/theme/00-ovirt.brand/welcome_style.css"</span><span class="p">></span>
[...]
<span class="p"><</span><span class="nt">link</span> <span class="na">rel</span><span class="o">=</span><span class="s">"stylesheet"</span> <span class="na">type</span><span class="o">=</span><span class="s">"text/css"</span> <span class="na">href</span><span class="o">=</span><span class="s">"/ovirt-engine/theme/99-custom.brand/common.css"</span><span class="p">></span>
[...]
</code></pre></div>SUSE Cloud - missing cinder key on computes2017-11-17T10:53:00+01:002017-11-17T10:53:00+01:00rmicheltag:blog.devnu11.net,2017-11-17:/2017/11/suse-cloud-missing-cinder-key-on-computes.html<div class="highlight"><pre><span></span><code><span class="mi">2017-11</span><span class="mo">-01</span><span class="w"> </span><span class="mi">14</span><span class="o">:</span><span class="mi">30</span><span class="o">:</span><span class="mf">53.970</span><span class="w"> </span><span class="mi">27835</span><span class="w"> </span><span class="n">ERROR</span><span class="w"> </span><span class="n">nova</span><span class="p">.</span><span class="n">virt</span><span class="p">.</span><span class="n">libvirt</span><span class="p">.</span><span class="n">driver</span><span class="w"> </span><span class="p">[</span><span class="n">instance</span><span class="o">:</span><span class="w"> </span><span class="n">c5618826</span><span class="mi">-98</span><span class="n">cb</span><span class="mi">-4</span><span class="n">fd6</span><span class="mi">-9</span><span class="n">d6f</span><span class="o">-</span><span class="n">b8899bd320b7</span><span class="p">]</span><span class="w"> </span><span class="n">libvirtError</span><span class="o">:</span><span class="w"> </span><span class="n">Secret</span><span class="w"> </span><span class="n">not</span><span class="w"> </span><span class="n">found</span><span class="o">:</span><span class="w"> </span><span class="n">no</span><span class="w"> </span><span class="n">secret</span><span class="w"> </span><span class="n">with</span><span class="w"> </span><span class="n">matching</span><span class="w"> </span><span class="n">uuid</span><span class="w"> </span><span class="err">'</span><span class="mi">5</span><span class="n">b7c1b36</span><span class="o">-</span>
<span class="mi">9093-4</span><span class="n">a13</span><span class="o">-</span><span class="n">b14d</span><span class="o">-</span><span class="n">da8b8cbdd8a6</span><span class="err">'</span>
<span class="mi">2017-11</span><span class="mo">-01</span><span class="w"> </span><span class="mi">14</span><span class="o">:</span><span class="mi">30</span><span class="o">:</span><span class="mf">53.970</span><span class="w"> </span><span class="mi">27835</span><span class="w"> </span><span class="n">ERROR</span><span class="w"> </span><span class="n">nova</span><span class="p">.</span><span class="n">virt</span><span class="p">.</span><span class="n">libvirt</span><span class="p">.</span><span class="n">driver</span><span class="w"> </span><span class="p">[</span><span class="n">instance</span><span class="o">:</span><span class="w"> </span><span class="n">c5618826 …</span></code></pre></div><div class="highlight"><pre><span></span><code><span class="mi">2017-11</span><span class="mo">-01</span><span class="w"> </span><span class="mi">14</span><span class="o">:</span><span class="mi">30</span><span class="o">:</span><span class="mf">53.970</span><span class="w"> </span><span class="mi">27835</span><span class="w"> </span><span class="n">ERROR</span><span class="w"> </span><span class="n">nova</span><span class="p">.</span><span class="n">virt</span><span class="p">.</span><span class="n">libvirt</span><span class="p">.</span><span class="n">driver</span><span class="w"> </span><span class="p">[</span><span class="n">instance</span><span class="o">:</span><span class="w"> </span><span class="n">c5618826</span><span class="mi">-98</span><span class="n">cb</span><span class="mi">-4</span><span class="n">fd6</span><span class="mi">-9</span><span class="n">d6f</span><span class="o">-</span><span class="n">b8899bd320b7</span><span class="p">]</span><span class="w"> </span><span class="n">libvirtError</span><span class="o">:</span><span class="w"> </span><span class="n">Secret</span><span class="w"> </span><span class="n">not</span><span class="w"> </span><span class="n">found</span><span class="o">:</span><span class="w"> </span><span class="n">no</span><span class="w"> </span><span class="n">secret</span><span class="w"> </span><span class="n">with</span><span class="w"> </span><span class="n">matching</span><span class="w"> </span><span class="n">uuid</span><span class="w"> </span><span class="err">'</span><span class="mi">5</span><span class="n">b7c1b36</span><span class="o">-</span>
<span class="mi">9093-4</span><span class="n">a13</span><span class="o">-</span><span class="n">b14d</span><span class="o">-</span><span class="n">da8b8cbdd8a6</span><span class="err">'</span>
<span class="mi">2017-11</span><span class="mo">-01</span><span class="w"> </span><span class="mi">14</span><span class="o">:</span><span class="mi">30</span><span class="o">:</span><span class="mf">53.970</span><span class="w"> </span><span class="mi">27835</span><span class="w"> </span><span class="n">ERROR</span><span class="w"> </span><span class="n">nova</span><span class="p">.</span><span class="n">virt</span><span class="p">.</span><span class="n">libvirt</span><span class="p">.</span><span class="n">driver</span><span class="w"> </span><span class="p">[</span><span class="n">instance</span><span class="o">:</span><span class="w"> </span><span class="n">c5618826</span><span class="mi">-98</span><span class="n">cb</span><span class="mi">-4</span><span class="n">fd6</span><span class="mi">-9</span><span class="n">d6f</span><span class="o">-</span><span class="n">b8899bd320b7</span><span class="p">]</span><span class="w"> </span>
<span class="mi">2017-11</span><span class="mo">-01</span><span class="w"> </span><span class="mi">14</span><span class="o">:</span><span class="mi">30</span><span class="o">:</span><span class="mf">53.971</span><span class="w"> </span><span class="mi">27835</span><span class="w"> </span><span class="n">ERROR</span><span class="w"> </span><span class="n">nova</span><span class="p">.</span><span class="n">virt</span><span class="p">.</span><span class="n">block_device</span><span class="w"> </span><span class="p">[</span><span class="n">req</span><span class="mi">-9</span><span class="n">f046c95</span><span class="o">-</span><span class="n">fecf</span><span class="mf">-46e5</span><span class="mi">-874</span><span class="n">d</span><span class="mi">-43</span><span class="n">b42da1e63f</span><span class="w"> </span><span class="mf">62169e96</span><span class="n">ed4b485aa2dfb2ca3235305c</span><span class="w"> </span><span class="mf">05f20019f</span><span class="mi">1</span><span class="n">c94952937a7f34087f5471</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="o">-</span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="n">instan</span>
<span class="nl">ce</span><span class="p">:</span><span class="w"> </span><span class="n">c5618826</span><span class="mi">-98</span><span class="n">cb</span><span class="mi">-4</span><span class="n">fd6</span><span class="mi">-9</span><span class="n">d6f</span><span class="o">-</span><span class="n">b8899bd320b7</span><span class="p">]</span><span class="w"> </span><span class="n">Driver</span><span class="w"> </span><span class="n">failed</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">attach</span><span class="w"> </span><span class="n">volume</span><span class="w"> </span><span class="mf">9f</span><span class="mi">33</span><span class="n">b42f</span><span class="mi">-79</span><span class="n">ba</span><span class="mi">-472</span><span class="n">f</span><span class="mf">-8e10</span><span class="mi">-9525</span><span class="n">f186cde1</span><span class="w"> </span><span class="n">at</span><span class="w"> </span><span class="o">/</span><span class="n">dev</span><span class="o">/</span><span class="n">vdb</span>
</code></pre></div>
<p>Unless you find a key on the compute like (something with crowbar-\$ID)</p>
<div class="highlight"><pre><span></span><code><span class="c"># virsh secret</span><span class="nb">-</span><span class="c">list </span>
<span class="c"> UUID Usage</span>
<span class="nb">--------------------------------------------------------------------------------</span>
<span class="c"> 5b7c1b36</span><span class="nb">-</span><span class="c">9093</span><span class="nb">-</span><span class="c">4a13</span><span class="nb">-</span><span class="c">b14d</span><span class="nb">-</span><span class="c">da8b8cbdd8a6 ceph crowbar</span><span class="nb">-</span><span class="c">5b7c1b36</span><span class="nb">-</span><span class="c">9093</span><span class="nb">-</span><span class="c">4a13</span><span class="nb">-</span><span class="c">b14d</span><span class="nb">-</span><span class="c">da8b8cbdd8a6 secret</span>
</code></pre></div>
<p>you can/have to fix it on your own:</p>
<div class="highlight"><pre><span></span><code><span class="ch">#!/bin/bash</span>
<span class="nv">ID</span><span class="o">=</span><span class="s2">"5b7c1b36-9093-4a13-b14d-da8b8cbdd8a6"</span>
<span class="c1"># get cinder key from ceph cluster - ceph auth get-key client.cinder</span>
<span class="nv">CINDERKEY</span><span class="o">=</span><span class="s2">"AQA4cw1aa2tAAhAAxYl2l/lCaer3squRBdXBYg=="</span>
<span class="nv">FILE</span><span class="o">=</span><span class="s2">"</span><span class="nv">$IDclient</span><span class="s2">.cinder secret"</span>
<span class="nv">FILENAME</span><span class="o">=</span><span class="s2">"/tmp/secret.xml"</span>
<span class="k">for</span><span class="w"> </span>host<span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="m">01</span><span class="w"> </span><span class="m">02</span><span class="w"> </span><span class="m">03</span><span class="w"> </span><span class="m">04</span><span class="w"> </span><span class="m">05</span><span class="p">;</span><span class="w"> </span><span class="k">do</span>
<span class="w"> </span><span class="nv">dest</span><span class="o">=</span><span class="s2">"compute</span><span class="si">${</span><span class="nv">host</span><span class="si">}</span><span class="s2">"</span>
<span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="s2">"Verifiy host </span><span class="nv">$dest</span><span class="s2">:"</span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span>!<span class="w"> </span>ssh<span class="w"> </span><span class="nv">$dest</span><span class="w"> </span>virsh<span class="w"> </span>secret-get-value<span class="w"> </span><span class="nv">$ID</span><span class="p">;</span><span class="w"> </span><span class="k">then</span>
<span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="s2">"Create secret for cinder user."</span>
<span class="w"> </span>ssh<span class="w"> </span><span class="nv">$dest</span><span class="w"> </span><span class="s2">"echo \"</span><span class="nv">$FILE</span><span class="s2">\" > </span><span class="nv">$FILENAME</span><span class="s2">"</span>
<span class="w"> </span>ssh<span class="w"> </span><span class="nv">$dest</span><span class="w"> </span>virsh<span class="w"> </span>secret-define<span class="w"> </span>--file<span class="w"> </span><span class="nv">$FILENAME</span>
<span class="w"> </span>ssh<span class="w"> </span><span class="nv">$dest</span><span class="w"> </span>virsh<span class="w"> </span>secret-set-value<span class="w"> </span>--secret<span class="w"> </span><span class="nv">$ID</span><span class="w"> </span>--base64<span class="w"> </span><span class="nv">$CINDERKEY</span>
<span class="w"> </span><span class="k">fi</span>
<span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="s2">"ok!"</span><span class="w"> </span>
<span class="k">done</span>
</code></pre></div>SUSE Openstack Cloud - debugging sleshammer2017-11-10T11:52:00+01:002017-11-10T11:52:00+01:00rmicheltag:blog.devnu11.net,2017-11-10:/2017/11/suse-openstack-cloud-debugging-sleshammer.html<p>Slug: suse-openstack-cloud-debugging-sleshammer
Status: published</p>
<p>To get a login shell during the <code>discovery</code> and <strong>[before]{.underline}</strong> the <a href="http://blog.devnu11.net/2016/02/suse-openstack-cloud-sleshammer-prepost-scripts-pxe-trigger/">nfs is mounted</a>:</p>
<p>Add the <code>DISCOVERY_ROOT_PASSWORD</code> <a href="https://github.com/crowbar/crowbar/blob/87b7730f0ffc427179589c5f000fbe7279dc524b/sledgehammer/start-up.sh#L46">parameter</a></p>
<div class="highlight"><pre><span></span><code><span class="n">root</span><span class="nv">@admin</span><span class="err">:</span><span class="o">~</span><span class="w"> </span><span class="err">#</span><span class="w"> </span><span class="n">crowbarctl</span><span class="w"> </span><span class="n">proposal</span><span class="w"> </span><span class="n">edit</span><span class="w"> </span><span class="n">provisioner</span><span class="w"> </span><span class="k">default</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="p p-Indicator">{</span>
<span class="w"> </span><span class="s">"id"</span><span class="p p-Indicator">:</span><span class="w"> </span><span class="s">"provisioner-default"</span><span class="p p-Indicator">,</span>
<span class="w"> </span><span class="s">"description"</span><span class="p p-Indicator">:</span><span class="w"> </span><span class="s">"Created</span><span class="nv"> </span><span class="s">on</span><span class="nv"> </span><span class="s">Thu,</span><span class="nv"> </span><span class="s">09</span><span class="nv"> </span><span class="s">Nov</span><span class="nv"> </span><span class="s">2017</span><span class="nv"> </span><span class="s">15:43:20</span><span class="nv"> </span><span class="s">+0100"</span><span class="p p-Indicator">,</span>
<span class="w"> </span><span class="s">"attributes"</span><span class="p p-Indicator">:</span><span class="w"> </span><span class="p p-Indicator">{</span>
<span class="w"> </span><span class="s">"provisioner"</span><span class="p p-Indicator">:</span><span class="w"> </span><span class="p p-Indicator">{</span>
<span class="p p-Indicator">[</span><span class="nv">...</span><span class="p p-Indicator">]</span>
<span class="w"> </span><span class="s">"discovery"</span><span class="p p-Indicator">:</span><span class="w"> </span><span class="p p-Indicator">{</span>
<span class="w"> </span><span class="s">"append"</span><span class="p p-Indicator">:</span><span class="w"> </span><span class="s">"DISCOVERY_ROOT_PASSWORD=replace-with-your-password"</span>
<span class="w"> </span><span class="p p-Indicator">}</span>
<span class="p p-Indicator">[</span><span class="nv">...</span><span class="p p-Indicator">]</span>
<span class="w"> </span><span class="p p-Indicator">}</span>
<span class="p p-Indicator">}</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="n">root …</span></code></pre></div><p>Slug: suse-openstack-cloud-debugging-sleshammer
Status: published</p>
<p>To get a login shell during the <code>discovery</code> and <strong>[before]{.underline}</strong> the <a href="http://blog.devnu11.net/2016/02/suse-openstack-cloud-sleshammer-prepost-scripts-pxe-trigger/">nfs is mounted</a>:</p>
<p>Add the <code>DISCOVERY_ROOT_PASSWORD</code> <a href="https://github.com/crowbar/crowbar/blob/87b7730f0ffc427179589c5f000fbe7279dc524b/sledgehammer/start-up.sh#L46">parameter</a></p>
<div class="highlight"><pre><span></span><code><span class="n">root</span><span class="nv">@admin</span><span class="err">:</span><span class="o">~</span><span class="w"> </span><span class="err">#</span><span class="w"> </span><span class="n">crowbarctl</span><span class="w"> </span><span class="n">proposal</span><span class="w"> </span><span class="n">edit</span><span class="w"> </span><span class="n">provisioner</span><span class="w"> </span><span class="k">default</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="p p-Indicator">{</span>
<span class="w"> </span><span class="s">"id"</span><span class="p p-Indicator">:</span><span class="w"> </span><span class="s">"provisioner-default"</span><span class="p p-Indicator">,</span>
<span class="w"> </span><span class="s">"description"</span><span class="p p-Indicator">:</span><span class="w"> </span><span class="s">"Created</span><span class="nv"> </span><span class="s">on</span><span class="nv"> </span><span class="s">Thu,</span><span class="nv"> </span><span class="s">09</span><span class="nv"> </span><span class="s">Nov</span><span class="nv"> </span><span class="s">2017</span><span class="nv"> </span><span class="s">15:43:20</span><span class="nv"> </span><span class="s">+0100"</span><span class="p p-Indicator">,</span>
<span class="w"> </span><span class="s">"attributes"</span><span class="p p-Indicator">:</span><span class="w"> </span><span class="p p-Indicator">{</span>
<span class="w"> </span><span class="s">"provisioner"</span><span class="p p-Indicator">:</span><span class="w"> </span><span class="p p-Indicator">{</span>
<span class="p p-Indicator">[</span><span class="nv">...</span><span class="p p-Indicator">]</span>
<span class="w"> </span><span class="s">"discovery"</span><span class="p p-Indicator">:</span><span class="w"> </span><span class="p p-Indicator">{</span>
<span class="w"> </span><span class="s">"append"</span><span class="p p-Indicator">:</span><span class="w"> </span><span class="s">"DISCOVERY_ROOT_PASSWORD=replace-with-your-password"</span>
<span class="w"> </span><span class="p p-Indicator">}</span>
<span class="p p-Indicator">[</span><span class="nv">...</span><span class="p p-Indicator">]</span>
<span class="w"> </span><span class="p p-Indicator">}</span>
<span class="p p-Indicator">}</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="n">root</span><span class="nv">@admin</span><span class="err">:</span><span class="o">~</span><span class="w"> </span><span class="err">#</span><span class="w"> </span><span class="n">crowbarctl</span><span class="w"> </span><span class="n">proposal</span><span class="w"> </span><span class="k">commit</span><span class="w"> </span><span class="n">provisioner</span><span class="w"> </span><span class="k">default</span>
</code></pre></div>chrony - adjust time manually2017-09-22T10:30:00+02:002017-09-22T10:30:00+02:00rmicheltag:blog.devnu11.net,2017-09-22:/2017/09/chrony-adjust-time-manually.html<div class="highlight"><pre><span></span><code>$<span class="w"> </span>chronyc<span class="w"> </span>-m<span class="w"> </span><span class="s2">"password </span><span class="k">$(</span><span class="w"> </span>awk<span class="w"> </span><span class="s1">'{ print $2 }'</span><span class="w"> </span>/etc/chrony/chrony.keys<span class="w"> </span><span class="k">)</span><span class="s2">"</span><span class="w"> </span>makestep
</code></pre></div>openstack kolla - docker dependency tree2017-06-29T15:02:00+02:002017-06-29T15:02:00+02:00rmicheltag:blog.devnu11.net,2017-06-29:/2017/06/openstack-kolla-docker-dependency-tree.html<p><a href="https://blog.devnu11.net/wp-content/uploads/kolla-dependency.png"><img alt="" class="wp-image-1728 size-large" height="1024" src="https://blog.devnu11.net/wp-content/uploads/kolla-dependency-251x1024.png" width="251"></a> kolla dependency tree
created via </p>
<div class="highlight"><pre><span></span><code><span class="c1"># kolla-build --save-dependency /tmp/kolla-dependency -p fullbuild</span>
</code></pre></div>ceph metasearch – elasticsearch backend - part 22017-04-27T22:00:00+02:002017-04-27T22:00:00+02:00rmicheltag:blog.devnu11.net,2017-04-27:/2017/04/ceph-metasearch-elasticsearch-backend-part-2.html<p><img alt="ceph-kraken" src="https://blog.devnu11.net/images/kraken.jpg"></p>
<p><strong>requirements</strong></p>
<ul>
<li>ceph cluster (kraken release)</li>
<li>elasticsearch</li>
</ul>
<p>The rgw syncer is only used/triggered in multisite configurations - so we need to setup a second zone for the metasearch.</p>
<h6>environment / settings</h6>
<div class="highlight"><pre><span></span><code><span class="nb">export</span><span class="w"> </span><span class="nv">rgwhost</span><span class="o">=</span><span class="s2">"192.168.122.80"</span>
<span class="nb">export</span><span class="w"> </span><span class="nv">elastichost</span><span class="o">=</span><span class="s2">"192.168.122.71"</span>
<span class="nb">export</span><span class="w"> </span><span class="nv">realm</span><span class="o">=</span><span class="s2">"demo"</span>
<span class="nb">export</span><span class="w"> </span><span class="nv">zonegrp</span><span class="o">=</span><span class="s2">"zone-1"</span>
<span class="nb">export</span><span class="w"> </span><span class="nv">1zone</span><span class="o">=</span><span class="s2">"zone1-a …</span></code></pre></div><p><img alt="ceph-kraken" src="https://blog.devnu11.net/images/kraken.jpg"></p>
<p><strong>requirements</strong></p>
<ul>
<li>ceph cluster (kraken release)</li>
<li>elasticsearch</li>
</ul>
<p>The rgw syncer is only used/triggered in multisite configurations - so we need to setup a second zone for the metasearch.</p>
<h6>environment / settings</h6>
<div class="highlight"><pre><span></span><code><span class="nb">export</span><span class="w"> </span><span class="nv">rgwhost</span><span class="o">=</span><span class="s2">"192.168.122.80"</span>
<span class="nb">export</span><span class="w"> </span><span class="nv">elastichost</span><span class="o">=</span><span class="s2">"192.168.122.71"</span>
<span class="nb">export</span><span class="w"> </span><span class="nv">realm</span><span class="o">=</span><span class="s2">"demo"</span>
<span class="nb">export</span><span class="w"> </span><span class="nv">zonegrp</span><span class="o">=</span><span class="s2">"zone-1"</span>
<span class="nb">export</span><span class="w"> </span><span class="nv">1zone</span><span class="o">=</span><span class="s2">"zone1-a"</span>
<span class="nb">export</span><span class="w"> </span><span class="nv">2zone</span><span class="o">=</span><span class="s2">"zone1-b"</span><span class="w"> </span><span class="c1"># used for metasearch</span>
<span class="nb">export</span><span class="w"> </span><span class="nv">sync_akey</span><span class="o">=</span><span class="s2">"</span><span class="k">$(</span><span class="w"> </span>cat<span class="w"> </span>/dev/urandom<span class="w"> </span><span class="p">|</span><span class="w"> </span>tr<span class="w"> </span>-dc<span class="w"> </span><span class="s1">'a-zA-Z0-9'</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>fold<span class="w"> </span>-w<span class="w"> </span><span class="m">20</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>head<span class="w"> </span>-n<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="k">)</span><span class="s2">"</span>
<span class="nb">export</span><span class="w"> </span><span class="nv">sync_skey</span><span class="o">=</span><span class="s2">"</span><span class="k">$(</span><span class="w"> </span>cat<span class="w"> </span>/dev/urandom<span class="w"> </span><span class="p">|</span><span class="w"> </span>tr<span class="w"> </span>-dc<span class="w"> </span><span class="s1">'a-zA-Z0-9'</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>fold<span class="w"> </span>-w<span class="w"> </span><span class="m">40</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>head<span class="w"> </span>-n<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="k">)</span><span class="s2">"</span>
<span class="nb">export</span><span class="w"> </span><span class="nv">user_akey</span><span class="o">=</span><span class="s2">"</span><span class="k">$(</span><span class="w"> </span>cat<span class="w"> </span>/dev/urandom<span class="w"> </span><span class="p">|</span><span class="w"> </span>tr<span class="w"> </span>-dc<span class="w"> </span><span class="s1">'a-zA-Z0-9'</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>fold<span class="w"> </span>-w<span class="w"> </span><span class="m">20</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>head<span class="w"> </span>-n<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="k">)</span><span class="s2">"</span>
<span class="nb">export</span><span class="w"> </span><span class="nv">user_skey</span><span class="o">=</span><span class="s2">"</span><span class="k">$(</span><span class="w"> </span>cat<span class="w"> </span>/dev/urandom<span class="w"> </span><span class="p">|</span><span class="w"> </span>tr<span class="w"> </span>-dc<span class="w"> </span><span class="s1">'a-zA-Z0-9'</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>fold<span class="w"> </span>-w<span class="w"> </span><span class="m">40</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>head<span class="w"> </span>-n<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="k">)</span><span class="s2">"</span>
</code></pre></div>
<h4>setup (see also <a href="http://blog.devnu11.net/2017/04/ceph-metasearch-elasticsearch-backend/">part1</a>)</h4>
<h6>create first zone</h6>
<div class="highlight"><pre><span></span><code><span class="c1"># radosgw-admin realm create --rgw-realm=${realm} --default</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="c1"># radosgw-admin zonegroup create --rgw-realm=${realm} --rgw-zonegroup=${zonegrp} --endpoints=http://${rgwhost}:80 --master --default</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="c1"># radosgw-admin zone create --rgw-realm=${realm} --rgw-zonegroup=${zonegrp} --rgw-zone=${1zone} --endpoints=http://${rgwhost}:80 --access-key=${sync_akey} --secret=${sync_skey} --master --default</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="c1"># radosgw-admin user create --uid=sync --display-name="zone sync" --access-key=${sync_akey} --secret=${sync_skey} --system</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="c1"># radosgw-admin period update --commit</span>
<span class="c1"># systemctl restart ceph-radosgw@rgw.${rgwhost}</span>
</code></pre></div>
<h6>create second zone</h6>
<div class="highlight"><pre><span></span><code><span class="c1"># radosgw-admin zone create --rgw-realm=${realm} --rgw-zonegroup=${zonegrp} --rgw-zone=${2zone} --access-key=${sync_akey} --secret=${sync_skey} --endpoints=http://${rgwhost}:81</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="c1"># radosgw-admin zone modify --rgw-realm=${realm} --rgw-zonegroup=${zonegrp} --rgw-zone=${2zone} --tier-type=elasticsearch --tier-config=endpoint=http://${elastichost}:9200,num_replicas=1,num_shards=10</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="c1"># radosgw-admin period update --commit</span>
</code></pre></div>
<p>Restart the first radosgw and the start the second radosgw. For example:</p>
<div class="highlight"><pre><span></span><code><span class="c1"># screen -dmS rgw2zone radosgw --keyring /etc/ceph/ceph.client.admin.keyring -f --rgw-zone=${2zone} --rgw-frontends="civetweb port=81"</span>
</code></pre></div>
<p>Check elasticsearch for the new index:</p>
<div class="highlight"><pre><span></span><code><span class="c1"># curl http://${elastichost}:9200/_cat/indices | grep rgw-${realm}</span>
yellow<span class="w"> </span>open<span class="w"> </span>rgw-demo<span class="w"> </span>z0UiKOOFQl682yILobYbMw<span class="w"> </span><span class="m">5</span><span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="m">0</span><span class="w"> </span><span class="m">11</span>.7kb<span class="w"> </span><span class="m">11</span>.7kb
</code></pre></div>
<h4>modify header/metadata</h4>
<p>create a user</p>
<div class="highlight"><pre><span></span><code>radosgw-admin<span class="w"> </span>user<span class="w"> </span>create<span class="w"> </span>--uid<span class="o">=</span>rmichel<span class="w"> </span>--display-name<span class="o">=</span><span class="s2">"rmichel"</span><span class="w"> </span>--access-key<span class="o">=</span><span class="si">${</span><span class="nv">user_akey</span><span class="si">}</span><span class="w"> </span>--secret<span class="o">=</span><span class="si">${</span><span class="nv">user_skey</span><span class="si">}</span>
</code></pre></div>
<p>upload some test data....</p>
<p>s3cmd is configured with the <code>${user_akey}</code> + <code>${user_skey}</code> and the <code>${rgwhost}:80</code> as the endpoint.</p>
<div class="highlight"><pre><span></span><code><span class="c1"># s3cmd modify --add-header x-amz-meta-color:green s3://bucket1/admin.key</span>
modify:<span class="w"> </span><span class="s1">'s3://bucket1/admin.key'</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="c1"># s3cmd info s3://bucket1/admin.key</span>
s3://bucket1/admin.key<span class="w"> </span><span class="o">(</span>object<span class="o">)</span>:
<span class="w"> </span>File<span class="w"> </span>size:<span class="w"> </span><span class="m">63</span>
<span class="w"> </span>Last<span class="w"> </span>mod:<span class="w"> </span>Thu,<span class="w"> </span><span class="m">27</span><span class="w"> </span>Apr<span class="w"> </span><span class="m">2017</span><span class="w"> </span><span class="m">21</span>:14:55<span class="w"> </span>GMT
<span class="w"> </span>MIME<span class="w"> </span>type:<span class="w"> </span>text/plain
<span class="w"> </span>Storage:<span class="w"> </span>STANDARD
<span class="w"> </span>MD5<span class="w"> </span>sum:<span class="w"> </span>ee40e385a45c4855bd360cfbdbd48711
<span class="w"> </span>SSE:<span class="w"> </span>none
<span class="w"> </span>policy:<span class="w"> </span>bucket11000falseadmin.key2017-04-27T21:14:55.494Z<span class="s2">"ee40e385a45c4855bd360cfbdbd48711"</span>63STANDARDrmichelrmichel
<span class="w"> </span>cors:<span class="w"> </span>none
<span class="w"> </span>ACL:<span class="w"> </span>rmichel:<span class="w"> </span>FULL_CONTROL
<span class="w"> </span>x-amz-meta-color:<span class="w"> </span>green
<span class="w"> </span>x-amz-meta-s3cmd-attrs:<span class="w"> </span>uid:0/gname:root/uname:root/gid:0/mode:33152/mtime:1493326171/atime:1493326171/md5:ee40e385a45c4855bd360cfbdbd48711/ctime:1493326171
</code></pre></div>
<h4>query elasticsearch</h4>
<p>The radosgw creates a index with the name <code>rgw-${realm}</code> (ref <a href="https://goo.gl/aBxOLw">ceph.git</a>)</p>
<p>In my case the url is <code>http://${elastichost}:9200/rgw-${realm}/</code></p>
<div class="highlight"><pre><span></span><code><span class="err">#</span><span class="w"> </span><span class="err">curl</span><span class="w"> </span><span class="err">h</span><span class="kc">tt</span><span class="err">p</span><span class="p">:</span><span class="c1">//192.168.122.71:9200/rgw-demo/_search?q=meta.custom.color=green | python -m json.tool</span>
<span class="p">{</span>
<span class="w"> </span><span class="nt">"_shards"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nt">"failed"</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span>
<span class="w"> </span><span class="nt">"successful"</span><span class="p">:</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span>
<span class="w"> </span><span class="nt">"total"</span><span class="p">:</span><span class="w"> </span><span class="mi">5</span>
<span class="w"> </span><span class="p">},</span>
<span class="w"> </span><span class="nt">"hits"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nt">"hits"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
<span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nt">"_id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"d9b0c7a5-f9e5-4c6e-a0c2-48642840c98b.14125.1:admin.key:"</span><span class="p">,</span>
<span class="w"> </span><span class="nt">"_index"</span><span class="p">:</span><span class="w"> </span><span class="s2">"rgw-demo"</span><span class="p">,</span>
<span class="w"> </span><span class="nt">"_score"</span><span class="p">:</span><span class="w"> </span><span class="mf">0.23691465</span><span class="p">,</span>
<span class="w"> </span><span class="nt">"_source"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nt">"bucket"</span><span class="p">:</span><span class="w"> </span><span class="s2">"bucket1"</span><span class="p">,</span>
<span class="w"> </span><span class="nt">"instance"</span><span class="p">:</span><span class="w"> </span><span class="s2">""</span><span class="p">,</span>
<span class="w"> </span><span class="nt">"meta"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nt">"content_type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"text/plain"</span><span class="p">,</span>
<span class="w"> </span><span class="nt">"custom"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nt">"color"</span><span class="p">:</span><span class="w"> </span><span class="s2">"green"</span><span class="p">,</span>
<span class="w"> </span><span class="nt">"s3cmd-attrs"</span><span class="p">:</span><span class="w"> </span><span class="s2">"uid:0/gname:root/uname:root/gid:0/mode:33152/mtime:1493326171/atime:1493326171/md5:ee40e385a45c4855bd360cfbdbd48711/ctime:1493326171"</span>
<span class="w"> </span><span class="p">},</span>
<span class="w"> </span><span class="nt">"etag"</span><span class="p">:</span><span class="w"> </span><span class="s2">"ee40e385a45c4855bd360cfbdbd48711"</span><span class="p">,</span>
<span class="w"> </span><span class="nt">"mtime"</span><span class="p">:</span><span class="w"> </span><span class="s2">"2017-04-27T21:14:55.483Z"</span><span class="p">,</span>
<span class="w"> </span><span class="nt">"size"</span><span class="p">:</span><span class="w"> </span><span class="mi">63</span><span class="p">,</span>
<span class="w"> </span><span class="nt">"x-amz-copy-source"</span><span class="p">:</span><span class="w"> </span><span class="s2">"/bucket1/admin.key"</span><span class="p">,</span>
<span class="w"> </span><span class="nt">"x-amz-date"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Thu, 27 Apr 2017 21:14:55 +0000"</span><span class="p">,</span>
<span class="w"> </span><span class="nt">"x-amz-metadata-directive"</span><span class="p">:</span><span class="w"> </span><span class="s2">"REPLACE"</span>
<span class="w"> </span><span class="p">},</span>
<span class="w"> </span><span class="nt">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"admin.key"</span><span class="p">,</span>
<span class="w"> </span><span class="nt">"owner"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nt">"display_name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"rmichel"</span><span class="p">,</span>
<span class="w"> </span><span class="nt">"id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"rmichel"</span>
<span class="w"> </span><span class="p">},</span>
<span class="w"> </span><span class="nt">"permissions"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
<span class="w"> </span><span class="s2">"rmichel"</span>
<span class="w"> </span><span class="p">]</span>
<span class="w"> </span><span class="p">},</span>
<span class="w"> </span><span class="nt">"_type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"object"</span>
<span class="w"> </span><span class="p">}</span>
<span class="w"> </span><span class="p">],</span>
<span class="w"> </span><span class="nt">"max_score"</span><span class="p">:</span><span class="w"> </span><span class="mf">0.23691465</span><span class="p">,</span>
<span class="w"> </span><span class="nt">"total"</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span>
<span class="w"> </span><span class="p">},</span>
<span class="w"> </span><span class="nt">"timed_out"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span>
<span class="w"> </span><span class="nt">"took"</span><span class="p">:</span><span class="w"> </span><span class="mi">102</span>
<span class="p">}</span>
</code></pre></div>ceph radosgw (set)lifecycle - AWS v4 is broken2017-04-26T22:21:00+02:002017-04-26T22:21:00+02:00rmicheltag:blog.devnu11.net,2017-04-26:/2017/04/ceph-radosgw-setlifecycle-aws-v4-is-broken.html<p><strong>First - s3cmd config</strong><br>
Setting <code>signature_v2 = true</code> is <strong>not enough</strong>! You have to set <code>--signature-v2</code> as a parameter.</p>
<p><strong>Second - 'Prefix' tag</strong><br>
You have specify a <code>Prefix</code> tag - and yes with a <strong>captial</strong> P!</p>
<h5>without prefix tag</h5>
<div class="highlight"><pre><span></span><code><span class="nt"><LifecycleConfiguration></span>
<span class="w"> </span><span class="nt"><Rule></span>
<span class="w"> </span><span class="nt"><ID></span>ExampleRule<span class="nt"></ID></span>
<span class="w"> </span><span class="nt"><Status></span>Enabled<span class="nt"></Status></span>
<span class="w"> </span><span class="nt"><Expiration></span>
<span class="w"> </span><span class="nt"><Days></span>1<span class="nt"></Days></span>
<span class="w"> </span><span class="nt"></Expiration></span>
<span class="w"> </span><span class="nt"></Rule></span>
<span class="nt"></LifecycleConfiguration …</span></code></pre></div><p><strong>First - s3cmd config</strong><br>
Setting <code>signature_v2 = true</code> is <strong>not enough</strong>! You have to set <code>--signature-v2</code> as a parameter.</p>
<p><strong>Second - 'Prefix' tag</strong><br>
You have specify a <code>Prefix</code> tag - and yes with a <strong>captial</strong> P!</p>
<h5>without prefix tag</h5>
<div class="highlight"><pre><span></span><code><span class="nt"><LifecycleConfiguration></span>
<span class="w"> </span><span class="nt"><Rule></span>
<span class="w"> </span><span class="nt"><ID></span>ExampleRule<span class="nt"></ID></span>
<span class="w"> </span><span class="nt"><Status></span>Enabled<span class="nt"></Status></span>
<span class="w"> </span><span class="nt"><Expiration></span>
<span class="w"> </span><span class="nt"><Days></span>1<span class="nt"></Days></span>
<span class="w"> </span><span class="nt"></Expiration></span>
<span class="w"> </span><span class="nt"></Rule></span>
<span class="nt"></LifecycleConfiguration></span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="o">[</span>root@kraken<span class="w"> </span>~<span class="o">]</span><span class="c1"># s3cmd setlifecycle lc.xml s3://bucket1 --signature-v2</span>
ERROR:<span class="w"> </span>S3<span class="w"> </span>error:<span class="w"> </span><span class="m">403</span><span class="w"> </span><span class="o">(</span>AccessDenied<span class="o">)</span>
</code></pre></div>
<h5>with closing prefix tag</h5>
<div class="highlight"><pre><span></span><code><span class="nt"><LifecycleConfiguration></span>
<span class="w"> </span><span class="nt"><Rule></span>
<span class="w"> </span><span class="nt"><ID></span>ExampleRule<span class="nt"></ID></span>
<span class="w"> </span><span class="nt"></Prefix></span>
<span class="w"> </span><span class="nt"><Status></span>Enabled<span class="nt"></Status></span>
<span class="w"> </span><span class="nt"><Expiration></span>
<span class="w"> </span><span class="nt"><Days></span>1<span class="nt"></Days></span>
<span class="w"> </span><span class="nt"></Expiration></span>
<span class="w"> </span><span class="nt"></Rule></span>
<span class="nt"></LifecycleConfiguration></span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="o">[</span>root@kraken<span class="w"> </span>~<span class="o">]</span><span class="c1"># s3cmd setlifecycle lc.xml s3://bucket1 --signature-v2</span>
ERROR:<span class="w"> </span>S3<span class="w"> </span>error:<span class="w"> </span><span class="m">403</span><span class="w"> </span><span class="o">(</span>AccessDenied<span class="o">)</span>
</code></pre></div>
<h5>with prefix tag - working!</h5>
<div class="highlight"><pre><span></span><code><span class="nt"><LifecycleConfiguration></span>
<span class="w"> </span><span class="nt"><Rule></span>
<span class="w"> </span><span class="nt"><ID></span>ExampleRule<span class="nt"></ID></span>
<span class="w"> </span><span class="nt"><Prefix></Prefix></span>
<span class="w"> </span><span class="nt"><Status></span>Enabled<span class="nt"></Status></span>
<span class="w"> </span><span class="nt"><Expiration></span>
<span class="w"> </span><span class="nt"><Days></span>1<span class="nt"></Days></span>
<span class="w"> </span><span class="nt"></Expiration></span>
<span class="w"> </span><span class="nt"></Rule></span>
<span class="nt"></LifecycleConfiguration></span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="o">[</span>root@kraken<span class="w"> </span>~<span class="o">]</span><span class="c1"># s3cmd setlifecycle lc.xml s3://bucket1 --signature-v2</span>
s3://bucket1/:<span class="w"> </span>Lifecycle<span class="w"> </span>Policy<span class="w"> </span>updated
</code></pre></div>
<h6>version</h6>
<p>ceph version 11.2.0 (f223e27eeb35991352ebc1f67423d4ebc252adb7)<br>
s3cmd version 1.6.1</p>ceph metasearch - elasticsearch backend2017-04-21T13:35:00+02:002017-04-21T13:35:00+02:00rmicheltag:blog.devnu11.net,2017-04-21:/2017/04/ceph-metasearch-elasticsearch-backend.html<p><img alt="ceph-kraken" src="https://blog.devnu11.net/images/kraken.jpg"></p>
<h5>Fetch zonegroup configuration (json struct)</h5>
<div class="highlight"><pre><span></span><code><span class="c1"># radosgw-admin zonegroup get > /tmp/zonegroup.json</span>
</code></pre></div>
<p>change the <code>tier_type</code> to <code>elasticsearch</code></p>
<h5>Import the configuration</h5>
<div class="highlight"><pre><span></span><code><span class="c1"># radosgw-admin zonegroup set --infile /tmp/zonegroup.json</span>
</code></pre></div>
<h5>Fetch zone configuration (json struct)</h5>
<div class="highlight"><pre><span></span><code><span class="c1"># radosgw-admin zone get > /tmp/zone.json</span>
</code></pre></div>
<p>Add the following parameter <code>endpoint</code> & <code>{url}</code> for the section <code>tier_config</code></p>
<div class="highlight"><pre><span></span><code><span class="w"> </span><span class="nt">"tier_config"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
<span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nt">"key"</span><span class="p">:</span><span class="w"> </span><span class="s2">"endpoint …</span></code></pre></div><p><img alt="ceph-kraken" src="https://blog.devnu11.net/images/kraken.jpg"></p>
<h5>Fetch zonegroup configuration (json struct)</h5>
<div class="highlight"><pre><span></span><code><span class="c1"># radosgw-admin zonegroup get > /tmp/zonegroup.json</span>
</code></pre></div>
<p>change the <code>tier_type</code> to <code>elasticsearch</code></p>
<h5>Import the configuration</h5>
<div class="highlight"><pre><span></span><code><span class="c1"># radosgw-admin zonegroup set --infile /tmp/zonegroup.json</span>
</code></pre></div>
<h5>Fetch zone configuration (json struct)</h5>
<div class="highlight"><pre><span></span><code><span class="c1"># radosgw-admin zone get > /tmp/zone.json</span>
</code></pre></div>
<p>Add the following parameter <code>endpoint</code> & <code>{url}</code> for the section <code>tier_config</code></p>
<div class="highlight"><pre><span></span><code><span class="w"> </span><span class="nt">"tier_config"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
<span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nt">"key"</span><span class="p">:</span><span class="w"> </span><span class="s2">"endpoint"</span><span class="p">,</span>
<span class="w"> </span><span class="nt">"val"</span><span class="p">:</span><span class="w"> </span><span class="s2">"http:\/\/192.168.122.71:9200"</span>
<span class="w"> </span><span class="p">}</span>
<span class="w"> </span><span class="p">],</span>
</code></pre></div>
<h5>Import the configuration</h5>
<div class="highlight"><pre><span></span><code><span class="c1"># radosgw-admin zone set --infile /tmp/zone.json</span>
</code></pre></div>
<p><strong>OR</strong></p>
<div class="highlight"><pre><span></span><code><span class="c1"># radosgw-admin zone modify --rgw-zonegroup={zonegroup-name} --rgw-zone={zone-name} --tier-config=endpoint={url}</span>
</code></pre></div>
<h5>Update & Commit</h5>
<div class="highlight"><pre><span></span><code><span class="c1"># radosgw-admin period update --commit</span>
</code></pre></div>
<p><strong>to be continued...</strong> <a href="http://blog.devnu11.net/2017/04/ceph-metasearch-elasticsearch-backend-part-2/">part2</a></p>Fixing ceph partition uuid or OSD data dir is not mounted2017-02-06T15:12:00+01:002017-02-06T15:12:00+01:00rmicheltag:blog.devnu11.net,2017-02-06:/2017/02/fixing-ceph-partition-uuid-or-osd-data-dir-is-not-mounted.html<p><strong>OSD_UUID</strong></p>
<p>4fbd7e29-9d25-41b8-afd0-062c0ceff05d</p>
<p><strong>JOURNAL_UUID</strong></p>
<p>45b0969e-9b03-4f30-b4c6-b4b80ceff106</p>
<p><strong>To fix the partition uuid</strong></p>
<p><code>sgdisk --info=##partnr## -t ##partnr##:##part-uuid## /dev/##disk##</code></p>
<p>eg.<br>
<code>sgdisk --info=1 -t 1:4fbd7e29-9d25-41b8-afd0-062c0ceff05d /dev/sda1</code></p>
<p>Ref: /lib/udev/rules.d/95-ceph-osd.rules</p>Openstack Manila with CephFS as backend [notepad]2016-12-22T17:17:00+01:002016-12-22T17:17:00+01:00rmicheltag:blog.devnu11.net,2016-12-22:/2016/12/openstack-manila-with-cephfs-as-backend-notepad.html<p><img alt="openstack-manila-cephfs" src="https://blog.devnu11.net/images/manila-cephfs-1.png"></p>[notepad] ceph journal size/ssd speed2016-10-18T07:22:00+02:002016-10-18T07:22:00+02:00rmicheltag:blog.devnu11.net,2016-10-18:/2016/10/notepad-ceph-journal-sizessd-speed.html<h2>ceph journal size <a href="http://docs.ceph.com/docs/jewel/rados/configuration/osd-config-ref/#journal-settings">(doc)</a></h2>
<p><strong>not for bluestore</strong></p>
<p><code>osd journal size = {2 * (expected throughput * filestore max sync interval)}</code></p>
<p>The default for <code>filestore max sync interval</code> is 5 therefore for a 10Gbit network the "perfect" size would be</p>
<p><code>osd journal size = { 2 * ( 1280 * 5 ) } = 12.5 GB</code></p>
<h2>ceph ssd speed</h2>
<p>The optimum …</p><h2>ceph journal size <a href="http://docs.ceph.com/docs/jewel/rados/configuration/osd-config-ref/#journal-settings">(doc)</a></h2>
<p><strong>not for bluestore</strong></p>
<p><code>osd journal size = {2 * (expected throughput * filestore max sync interval)}</code></p>
<p>The default for <code>filestore max sync interval</code> is 5 therefore for a 10Gbit network the "perfect" size would be</p>
<p><code>osd journal size = { 2 * ( 1280 * 5 ) } = 12.5 GB</code></p>
<h2>ceph ssd speed</h2>
<p>The optimum would be sum of all disk seq write speeds - 11 disks with ~110mb/s = ~1210mb/s - an <a href="http://ark.intel.com/de/products/88733/Intel-SSD-DC-P3520-Series-2_0TB-12-Height-PCIe-3_0-x4-3D1-MLC">Intel P3520</a> might would fit.</p>
<p><ins>How many journals per ssd</ins>?</p>
<p>Oh thats easy.</p>
<p><code>Journals = (ssd seq write speed) / (hdd seq write speed)</code></p>
<p><code>Journals = 1350 / 115 = ~11</code></p>
<p>(For the Intel P3520 with 11 hdds)</p>ceph - setting up rbd-mirror between two ceph clusters2016-10-15T11:30:00+02:002016-10-15T11:30:00+02:00rmicheltag:blog.devnu11.net,2016-10-15:/2016/10/ceph-setting-up-rbd-mirror-between-two-ceph-clusters.html<p><strong>Environment</strong><br>
2x ceph cluster (aio) running centos 7.2 /w ceph jewel. Added a 2nd crush rule to both clusters:</p>
<div class="highlight"><pre><span></span><code>rule<span class="w"> </span>rep_osd<span class="w"> </span><span class="o">{</span>
<span class="w"> </span>ruleset<span class="w"> </span><span class="m">1</span>
<span class="w"> </span><span class="nb">type</span><span class="w"> </span>replicated
<span class="w"> </span>min_size<span class="w"> </span><span class="m">1</span>
<span class="w"> </span>max_size<span class="w"> </span><span class="m">10</span>
<span class="w"> </span>step<span class="w"> </span>take<span class="w"> </span>default
<span class="w"> </span>step<span class="w"> </span>choose<span class="w"> </span>firstn<span class="w"> </span><span class="m">0</span><span class="w"> </span><span class="nb">type</span><span class="w"> </span>osd
<span class="w"> </span>step<span class="w"> </span>emit
<span class="o">}</span>
</code></pre></div>
<p>(<a href="http://docs.ceph.com/docs/master/rados/operations/crush-map/">ceph crush map</a>)</p>
<p><strong>Setup</strong></p>
<p>Install the rbd-mirror package in …</p><p><strong>Environment</strong><br>
2x ceph cluster (aio) running centos 7.2 /w ceph jewel. Added a 2nd crush rule to both clusters:</p>
<div class="highlight"><pre><span></span><code>rule<span class="w"> </span>rep_osd<span class="w"> </span><span class="o">{</span>
<span class="w"> </span>ruleset<span class="w"> </span><span class="m">1</span>
<span class="w"> </span><span class="nb">type</span><span class="w"> </span>replicated
<span class="w"> </span>min_size<span class="w"> </span><span class="m">1</span>
<span class="w"> </span>max_size<span class="w"> </span><span class="m">10</span>
<span class="w"> </span>step<span class="w"> </span>take<span class="w"> </span>default
<span class="w"> </span>step<span class="w"> </span>choose<span class="w"> </span>firstn<span class="w"> </span><span class="m">0</span><span class="w"> </span><span class="nb">type</span><span class="w"> </span>osd
<span class="w"> </span>step<span class="w"> </span>emit
<span class="o">}</span>
</code></pre></div>
<p>(<a href="http://docs.ceph.com/docs/master/rados/operations/crush-map/">ceph crush map</a>)</p>
<p><strong>Setup</strong></p>
<p>Install the rbd-mirror package in both sides. Technically they can run on any host even when they are not part of the cluster.</p>
<div class="highlight"><pre><span></span><code><span class="o">[</span>root@ceph01<span class="w"> </span>~<span class="o">]</span><span class="c1"># yum install -y rbd-mirror</span>
<span class="o">[</span>root@ceph04<span class="w"> </span>~<span class="o">]</span><span class="c1"># yum install -y rbd-mirror</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="o">[</span>root@ceph01<span class="w"> </span>~<span class="o">]</span><span class="c1"># rbd --cluster primary mirror pool info</span>
Mode:<span class="w"> </span>disabled
<span class="o">[</span>root@ceph04<span class="w"> </span>~<span class="o">]</span><span class="c1"># rbd --cluster secondary mirror pool info</span>
Mode:<span class="w"> </span>disabled
</code></pre></div>
<p>Check that the cluster name is set. All systemd unit files are including that file during the startup.</p>
<div class="highlight"><pre><span></span><code><span class="o">[</span>root@ceph01<span class="w"> </span>~<span class="o">]</span><span class="c1"># grep -i cluster /etc/sysconfig/ceph </span>
<span class="nv">CLUSTER</span><span class="o">=</span>primary
<span class="o">[</span>root@ceph04<span class="w"> </span>~<span class="o">]</span><span class="c1"># grep -i cluster /etc/sysconfig/ceph </span>
<span class="nv">CLUSTER</span><span class="o">=</span>secondary
</code></pre></div>
<p>Create a key on both clusters which is able to access (rwx) the pool. (<a href="http://docs.ceph.com/docs/master/rados/operations/user-management/#authorization-capabilities">ceph authorization (caps)</a>)</p>
<div class="highlight"><pre><span></span><code><span class="o">[</span>root@ceph01<span class="w"> </span>~<span class="o">]</span><span class="c1"># ceph --cluster primary auth get-or-create client.primary mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=rbd' -o /etc/ceph/primary.client.primary.keyring</span>
<span class="o">[</span>root@ceph04<span class="w"> </span>~<span class="o">]</span><span class="c1"># ceph --cluster secondary auth get-or-create client.secondary mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=rbd' -o /etc/ceph/secondary.client.secondary.keyring</span>
</code></pre></div>
<p>Enable pool mirroring and verify that it is active.</p>
<div class="highlight"><pre><span></span><code><span class="o">[</span>root@ceph01<span class="w"> </span>~<span class="o">]</span><span class="c1"># rbd --cluster primary mirror pool enable rbd pool</span>
<span class="o">[</span>root@ceph01<span class="w"> </span>~<span class="o">]</span><span class="c1"># rbd --cluster primary mirror pool info</span>
Mode:<span class="w"> </span>pool
Peers:<span class="w"> </span>none
<span class="o">[</span>root@ceph04<span class="w"> </span>~<span class="o">]</span><span class="c1"># rbd --cluster secondary mirror pool enable rbd pool</span>
<span class="o">[</span>root@ceph04<span class="w"> </span>~<span class="o">]</span><span class="c1"># rbd --cluster secondary mirror pool info</span>
Mode:<span class="w"> </span>pool
Peers:<span class="w"> </span>none
</code></pre></div>
<p>Copy the keys and configs between the clusters. The rbd-mirror in the primary cluster requires the key from the secondary and vice versa.</p>
<div class="highlight"><pre><span></span><code><span class="o">[</span>root@ceph01<span class="w"> </span>~<span class="o">]</span><span class="c1"># scp /etc/ceph/primary.client.primary.keyring /etc/ceph/primary.conf root@ceph04:/etc/ceph/</span>
primary.client.primary.keyring
primary.conf
<span class="o">[</span>root@ceph04<span class="w"> </span>~<span class="o">]</span><span class="c1"># scp /etc/ceph/secondary.client.secondary.keyring /etc/ceph/secondary.conf root@ceph01:/etc/ceph/</span>
secondary.client.secondary.keyring<span class="w"> </span>
secondary.conf
</code></pre></div>
<p>Enable/start the <code>ceph-rbd-mirror</code> - extend the unit name with the local cluster name.</p>
<div class="highlight"><pre><span></span><code><span class="o">[</span>root@ceph01<span class="w"> </span>ceph<span class="o">]</span><span class="c1"># systemctl start ceph-rbd-mirror@primary</span>
<span class="o">[</span>root@ceph04<span class="w"> </span>ceph<span class="o">]</span><span class="c1"># systemctl start ceph-rbd-mirror@secondary</span>
</code></pre></div>
<p>Add the remote cluster as a peer. Example: <strong>client.secondary</strong> represent the key name and <strong>\@secondary</strong> the cluster name. That mean rbd-mirror is looking for a key like <code>/etc/ceph/secondary.client.secondary.keyring</code>.</p>
<div class="highlight"><pre><span></span><code><span class="o">[</span>root@ceph01<span class="w"> </span>ceph<span class="o">]</span><span class="c1"># rbd --cluster primary mirror pool peer add rbd client.secondary@secondary </span>
49c28a78-ef7d-4f12-b003-7ce69f091b85
<span class="o">[</span>root@ceph04<span class="w"> </span>ceph<span class="o">]</span><span class="c1"># rbd --cluster secondary mirror pool peer add rbd client.primary@primary</span>
<span class="m">02053868</span>-7dd7-4029-b287-53a205fdd668
</code></pre></div>
<p><strong>Thats it!</strong> Now create a rbd image and activate the <code>exclusive-lock</code> and <code>journaling</code> feature. (<a href="http://docs.ceph.com/docs/master/man/8/rbd/">man 8 rbd</a>)</p>
<div class="highlight"><pre><span></span><code><span class="o">[</span>root@ceph01<span class="w"> </span>ceph<span class="o">]</span><span class="c1"># rbd --cluster primary create test-1 --size 5M --image-feature exclusive-lock,journaling</span>
<span class="o">[</span>root@ceph01<span class="w"> </span>ceph<span class="o">]</span><span class="c1"># rbd --cluster primary create test-2 --size 5M --image-feature exclusive-lock,journaling</span>
</code></pre></div>
<p>The <code>test-1</code> image is active on the primary cluster, <code>test-2</code> is active on the secondary cluster.</p>
<div class="highlight"><pre><span></span><code><span class="o">[</span>root@ceph04<span class="w"> </span>ceph<span class="o">]</span><span class="c1"># rbd --cluster secondary mirror image demote rbd/test-1</span>
<span class="o">[</span>root@ceph01<span class="w"> </span>ceph<span class="o">]</span><span class="c1"># rbd --cluster primary mirror image promote rbd/test-1</span>
<span class="o">[</span>root@ceph01<span class="w"> </span>ceph<span class="o">]</span><span class="c1"># rbd --cluster primary mirror image demote rbd/test-2</span>
<span class="o">[</span>root@ceph04<span class="w"> </span>ceph<span class="o">]</span><span class="c1"># rbd --cluster secondary mirror image promote rbd/test-2</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="o">[</span>root@ceph01<span class="w"> </span>ceph<span class="o">]</span><span class="c1"># rbd --cluster primary mirror pool status --verbose</span>
health:<span class="w"> </span>OK
images:<span class="w"> </span><span class="m">2</span><span class="w"> </span>total
<span class="w"> </span><span class="m">1</span><span class="w"> </span>replaying
<span class="w"> </span><span class="m">1</span><span class="w"> </span>stopped
test-1:
<span class="w"> </span>global_id:<span class="w"> </span>ed021ec4-2a44-4b9f-9efa-10590ffcb916
<span class="w"> </span>state:<span class="w"> </span>up+stopped
<span class="w"> </span>description:<span class="w"> </span>remote<span class="w"> </span>image<span class="w"> </span>is<span class="w"> </span>non-primary<span class="w"> </span>or<span class="w"> </span><span class="nb">local</span><span class="w"> </span>image<span class="w"> </span>is<span class="w"> </span>primary
<span class="w"> </span>last_update:<span class="w"> </span><span class="m">2016</span>-10-14<span class="w"> </span><span class="m">14</span>:49:07
test-2:
<span class="w"> </span>global_id:<span class="w"> </span>d99bbff5-14fb-4e07-a596-69e55608f14a
<span class="w"> </span>state:<span class="w"> </span>up+replaying
<span class="w"> </span>description:<span class="w"> </span>replaying,<span class="w"> </span><span class="nv">master_position</span><span class="o">=[</span><span class="nv">object_number</span><span class="o">=</span><span class="m">3</span>,<span class="w"> </span><span class="nv">tag_tid</span><span class="o">=</span><span class="m">4</span>,<span class="w"> </span><span class="nv">entry_tid</span><span class="o">=</span><span class="m">3</span><span class="o">]</span>,<span class="w"> </span><span class="nv">mirror_position</span><span class="o">=[</span><span class="nv">object_number</span><span class="o">=</span><span class="m">3</span>,<span class="w"> </span><span class="nv">tag_tid</span><span class="o">=</span><span class="m">4</span>,<span class="w"> </span><span class="nv">entry_tid</span><span class="o">=</span><span class="m">3</span><span class="o">]</span>,<span class="w"> </span><span class="nv">entries_behind_master</span><span class="o">=</span><span class="m">0</span>
<span class="w"> </span>last_update:<span class="w"> </span><span class="m">2016</span>-10-14<span class="w"> </span><span class="m">14</span>:49:09
<span class="o">[</span>root@ceph01<span class="w"> </span>ceph<span class="o">]</span><span class="c1"># rbd --cluster primary ls -l</span>
NAME<span class="w"> </span>SIZE<span class="w"> </span>PARENT<span class="w"> </span>FMT<span class="w"> </span>PROT<span class="w"> </span>LOCK<span class="w"> </span>
test-1<span class="w"> </span>5120k<span class="w"> </span><span class="m">2</span><span class="w"> </span>
test-2<span class="w"> </span>5120k<span class="w"> </span><span class="m">2</span><span class="w"> </span>excl<span class="w"> </span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="o">[</span>root@ceph04<span class="w"> </span>ceph<span class="o">]</span><span class="c1"># rbd --cluster secondary mirror pool status --verbose</span>
health:<span class="w"> </span>OK
images:<span class="w"> </span><span class="m">2</span><span class="w"> </span>total
<span class="w"> </span><span class="m">1</span><span class="w"> </span>replaying
<span class="w"> </span><span class="m">1</span><span class="w"> </span>stopped
test-1:
<span class="w"> </span>global_id:<span class="w"> </span>ed021ec4-2a44-4b9f-9efa-10590ffcb916
<span class="w"> </span>state:<span class="w"> </span>up+replaying
<span class="w"> </span>description:<span class="w"> </span>replaying,<span class="w"> </span><span class="nv">master_position</span><span class="o">=[</span><span class="nv">object_number</span><span class="o">=</span><span class="m">0</span>,<span class="w"> </span><span class="nv">tag_tid</span><span class="o">=</span><span class="m">3</span>,<span class="w"> </span><span class="nv">entry_tid</span><span class="o">=</span><span class="m">0</span><span class="o">]</span>,<span class="w"> </span><span class="nv">mirror_position</span><span class="o">=[</span><span class="nv">object_number</span><span class="o">=</span><span class="m">0</span>,<span class="w"> </span><span class="nv">tag_tid</span><span class="o">=</span><span class="m">3</span>,<span class="w"> </span><span class="nv">entry_tid</span><span class="o">=</span><span class="m">0</span><span class="o">]</span>,<span class="w"> </span><span class="nv">entries_behind_master</span><span class="o">=</span><span class="m">0</span>
<span class="w"> </span>last_update:<span class="w"> </span><span class="m">2016</span>-10-14<span class="w"> </span><span class="m">14</span>:49:21
test-2:
<span class="w"> </span>global_id:<span class="w"> </span>d99bbff5-14fb-4e07-a596-69e55608f14a
<span class="w"> </span>state:<span class="w"> </span>up+stopped
<span class="w"> </span>description:<span class="w"> </span>remote<span class="w"> </span>image<span class="w"> </span>is<span class="w"> </span>non-primary<span class="w"> </span>or<span class="w"> </span><span class="nb">local</span><span class="w"> </span>image<span class="w"> </span>is<span class="w"> </span>primary
<span class="w"> </span>last_update:<span class="w"> </span><span class="m">2016</span>-10-14<span class="w"> </span><span class="m">14</span>:49:21
<span class="o">[</span>root@ceph04<span class="w"> </span>ceph<span class="o">]</span><span class="c1"># rbd --cluster secondary ls -l</span>
NAME<span class="w"> </span>SIZE<span class="w"> </span>PARENT<span class="w"> </span>FMT<span class="w"> </span>PROT<span class="w"> </span>LOCK<span class="w"> </span>
test-1<span class="w"> </span>5120k<span class="w"> </span><span class="m">2</span><span class="w"> </span>excl<span class="w"> </span>
test-2<span class="w"> </span>5120k<span class="w"> </span><span class="m">2</span><span class="w"> </span>
</code></pre></div>Google Software Updater fuckups2016-09-22T19:01:00+02:002016-09-22T19:01:00+02:00rmicheltag:blog.devnu11.net,2016-09-22:/2016/09/google-software-updater-fuckups.html<p><img alt="google-software-updater" src="https://blog.devnu11.net/images/google-update-fuckups.png"></p>
<p>To disable the ksfetch (ks = keystone) daemon (which comes with google products) there are several ways to do this.</p>
<ol>
<li>Uninstall the <em>Google Software Update Agent</em></li>
</ol>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>/Contents/Resources/GoogleSoftwareUpdateAgent.app/Contents/Resources/ksinstall<span class="w"> </span><span class="o">[</span>--nuke<span class="o">]</span><span class="w"> </span>
</code></pre></div>
<p>The <code>--nuke</code> parameter will also remove <code>ksfetch</code> related stuff.</p>
<ol>
<li>Set the <code>checkInterval …</code></li></ol><p><img alt="google-software-updater" src="https://blog.devnu11.net/images/google-update-fuckups.png"></p>
<p>To disable the ksfetch (ks = keystone) daemon (which comes with google products) there are several ways to do this.</p>
<ol>
<li>Uninstall the <em>Google Software Update Agent</em></li>
</ol>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>/Contents/Resources/GoogleSoftwareUpdateAgent.app/Contents/Resources/ksinstall<span class="w"> </span><span class="o">[</span>--nuke<span class="o">]</span><span class="w"> </span>
</code></pre></div>
<p>The <code>--nuke</code> parameter will also remove <code>ksfetch</code> related stuff.</p>
<ol>
<li>Set the <code>checkInterval</code> to the maximum (24h). Default is 5h (18000)</li>
</ol>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>defaults<span class="w"> </span><span class="nb">read</span><span class="w"> </span>com.google.Keystone.Agent<span class="w"> </span>checkInterval
$<span class="w"> </span>defaults<span class="w"> </span>write<span class="w"> </span>com.google.Keystone.Agent<span class="w"> </span>checkInterval<span class="w"> </span><span class="m">86400</span><span class="w"> </span>
</code></pre></div>ejabberd + letsencrypt (ssl config)2016-09-05T22:48:00+02:002016-09-05T22:48:00+02:00rmicheltag:blog.devnu11.net,2016-09-05:/2016/09/ejabberd-letsencrypt-ssl-config.html<div class="highlight"><pre><span></span><code><span class="p">[</span><span class="o">...</span><span class="p">]</span>
<span class="n">listen</span><span class="p">:</span>
<span class="o">-</span>
<span class="n">port</span><span class="p">:</span> <span class="mi">5222</span>
<span class="n">module</span><span class="p">:</span> <span class="n">ejabberd_c2s</span>
<span class="n">certfile</span><span class="p">:</span> <span class="s2">"/etc/ejabberd/ejabberd.pem"</span>
<span class="n">starttls</span><span class="p">:</span> <span class="n">true</span>
<span class="n">starttls_required</span><span class="p">:</span> <span class="n">true</span>
<span class="n">protocol_options</span><span class="p">:</span>
<span class="o">-</span> <span class="s2">"no_sslv2"</span>
<span class="o">-</span> <span class="s2">"no_sslv3"</span>
<span class="o">-</span> <span class="s2">"no_tlsv1"</span>
<span class="o">-</span> <span class="s2">"no_tlsv1_1"</span>
<span class="n">ciphers</span><span class="p">:</span> <span class="s2">"ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256"</span>
<span class="n">dhfile</span><span class="p">:</span> <span class="s2">"/etc/ejabberd/dh2048.pem"</span>
<span class="p">[</span><span class="o">...</span><span class="p">]</span>
<span class="o">-</span>
<span class="n">port</span><span class="p">:</span> <span class="mi">5269</span>
<span class="n">ip</span><span class="p">:</span> <span class="s2">"::"</span>
<span class="n">module</span><span class="p">:</span> <span class="n">ejabberd_s2s_in</span>
<span class="n">protocol_options</span><span class="p">:</span>
<span class="o">-</span> <span class="s2">"no_sslv2"</span>
<span class="o">-</span> <span class="s2">"no_sslv3"</span>
<span class="o">-</span> <span class="s2">"no_tlsv1"</span>
<span class="o">-</span> <span class="s2">"no_tlsv1_1"</span>
<span class="p">[</span><span class="o">...</span><span class="p">]</span>
<span class="n">s2s_use_starttls</span><span class="p">:</span> <span class="n">required</span>
<span class="n">s2s_certfile</span><span class="p">:</span> <span class="s2">"/etc/ejabberd …</span></code></pre></div><div class="highlight"><pre><span></span><code><span class="p">[</span><span class="o">...</span><span class="p">]</span>
<span class="n">listen</span><span class="p">:</span>
<span class="o">-</span>
<span class="n">port</span><span class="p">:</span> <span class="mi">5222</span>
<span class="n">module</span><span class="p">:</span> <span class="n">ejabberd_c2s</span>
<span class="n">certfile</span><span class="p">:</span> <span class="s2">"/etc/ejabberd/ejabberd.pem"</span>
<span class="n">starttls</span><span class="p">:</span> <span class="n">true</span>
<span class="n">starttls_required</span><span class="p">:</span> <span class="n">true</span>
<span class="n">protocol_options</span><span class="p">:</span>
<span class="o">-</span> <span class="s2">"no_sslv2"</span>
<span class="o">-</span> <span class="s2">"no_sslv3"</span>
<span class="o">-</span> <span class="s2">"no_tlsv1"</span>
<span class="o">-</span> <span class="s2">"no_tlsv1_1"</span>
<span class="n">ciphers</span><span class="p">:</span> <span class="s2">"ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256"</span>
<span class="n">dhfile</span><span class="p">:</span> <span class="s2">"/etc/ejabberd/dh2048.pem"</span>
<span class="p">[</span><span class="o">...</span><span class="p">]</span>
<span class="o">-</span>
<span class="n">port</span><span class="p">:</span> <span class="mi">5269</span>
<span class="n">ip</span><span class="p">:</span> <span class="s2">"::"</span>
<span class="n">module</span><span class="p">:</span> <span class="n">ejabberd_s2s_in</span>
<span class="n">protocol_options</span><span class="p">:</span>
<span class="o">-</span> <span class="s2">"no_sslv2"</span>
<span class="o">-</span> <span class="s2">"no_sslv3"</span>
<span class="o">-</span> <span class="s2">"no_tlsv1"</span>
<span class="o">-</span> <span class="s2">"no_tlsv1_1"</span>
<span class="p">[</span><span class="o">...</span><span class="p">]</span>
<span class="n">s2s_use_starttls</span><span class="p">:</span> <span class="n">required</span>
<span class="n">s2s_certfile</span><span class="p">:</span> <span class="s2">"/etc/ejabberd/ejabberd.pem"</span>
<span class="n">s2s_dhfile</span><span class="p">:</span> <span class="s2">"/etc/ejabberd/dh2048.pem"</span>
<span class="n">s2s_ciphers</span><span class="p">:</span> <span class="s2">"ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256"</span>
<span class="n">s2s_protocol_options</span><span class="p">:</span>
<span class="o">-</span> <span class="s2">"no_sslv2"</span>
<span class="o">-</span> <span class="s2">"no_sslv3"</span>
<span class="o">-</span> <span class="s2">"no_tlsv1"</span>
<span class="o">-</span> <span class="s2">"no_tlsv1_1"</span>
</code></pre></div>
<p>Links: <a href="https://docs.ejabberd.im/admin/guide/configuration/">https://docs.ejabberd.im/admin/guide/configuration/</a></p>RHEV/ovirt - can't switch SPM role - async_tasks are stucked2016-08-29T21:46:00+02:002016-08-29T21:46:00+02:00rmicheltag:blog.devnu11.net,2016-08-29:/2016/08/rhevovirt-cant-switch-spm-role-async_tasks-are-stucked.html<p><strong>On the host with the SPM role</strong></p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>vdsClient<span class="w"> </span>-s<span class="w"> </span><span class="m">0</span><span class="w"> </span>getAllTasksStatuses
<span class="o">{</span><span class="s1">'status'</span>:<span class="w"> </span><span class="o">{</span><span class="s1">'message'</span>:<span class="w"> </span><span class="s1">'OK'</span>,<span class="w"> </span><span class="s1">'code'</span>:<span class="w"> </span><span class="m">0</span><span class="o">}</span>,<span class="w"> </span><span class="s1">'allTasksStatus'</span>:<span class="w"> </span><span class="o">{</span><span class="s1">'feb3aaa5-ec1c-42a6-8f17-f7c94891b43f'</span>:<span class="w"> </span><span class="o">{</span><span class="s1">'message'</span>:<span class="w"> </span><span class="s1">'1 jobs completed successfully'</span>,<span class="w"> </span><span class="s1">'code'</span>:<span class="w"> </span><span class="m">0</span>,<span class="w"> </span><span class="s1">'taskID'</span>:<span class="w"> </span><span class="s1">'631fd441-0955-49da-9376-1cba24764aa7'</span>,<span class="w"> </span><span class="s1">'taskResult'</span>:<span class="w"> </span><span class="s1">'success'</span>,<span class="w"> </span><span class="s1">'taskState'</span>:<span class="w"> </span><span class="s1">'finished'</span><span class="o">}</span>,<span class="w"> </span><span class="s1">'b4fe0c6d-d458-4ed2-a9e2-2c0d41914b8f'</span>:<span class="w"> </span><span class="o">{</span><span class="s1">'message'</span>:<span class="w"> </span><span class="s1">'1 jobs completed successfully'</span>,<span class="w"> </span><span class="s1">'code'</span>:<span class="w"> </span><span class="m">0</span>,<span class="w"> </span><span class="s1">'taskID'</span>:<span class="w"> </span><span class="s1">'67e1a2e8-3747-43fa-b0dd-fc469a6f6a02'</span>,<span class="w"> </span><span class="s1">'taskResult'</span>:<span class="w"> </span><span class="s1">'success'</span>,
<span class="s1">'taskState'</span>:<span class="w"> </span><span class="s1">'finished'</span><span class="o">}}}</span>
</code></pre></div>
<p><strong>On the RHEV/ovirt manager …</strong></p><p><strong>On the host with the SPM role</strong></p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>vdsClient<span class="w"> </span>-s<span class="w"> </span><span class="m">0</span><span class="w"> </span>getAllTasksStatuses
<span class="o">{</span><span class="s1">'status'</span>:<span class="w"> </span><span class="o">{</span><span class="s1">'message'</span>:<span class="w"> </span><span class="s1">'OK'</span>,<span class="w"> </span><span class="s1">'code'</span>:<span class="w"> </span><span class="m">0</span><span class="o">}</span>,<span class="w"> </span><span class="s1">'allTasksStatus'</span>:<span class="w"> </span><span class="o">{</span><span class="s1">'feb3aaa5-ec1c-42a6-8f17-f7c94891b43f'</span>:<span class="w"> </span><span class="o">{</span><span class="s1">'message'</span>:<span class="w"> </span><span class="s1">'1 jobs completed successfully'</span>,<span class="w"> </span><span class="s1">'code'</span>:<span class="w"> </span><span class="m">0</span>,<span class="w"> </span><span class="s1">'taskID'</span>:<span class="w"> </span><span class="s1">'631fd441-0955-49da-9376-1cba24764aa7'</span>,<span class="w"> </span><span class="s1">'taskResult'</span>:<span class="w"> </span><span class="s1">'success'</span>,<span class="w"> </span><span class="s1">'taskState'</span>:<span class="w"> </span><span class="s1">'finished'</span><span class="o">}</span>,<span class="w"> </span><span class="s1">'b4fe0c6d-d458-4ed2-a9e2-2c0d41914b8f'</span>:<span class="w"> </span><span class="o">{</span><span class="s1">'message'</span>:<span class="w"> </span><span class="s1">'1 jobs completed successfully'</span>,<span class="w"> </span><span class="s1">'code'</span>:<span class="w"> </span><span class="m">0</span>,<span class="w"> </span><span class="s1">'taskID'</span>:<span class="w"> </span><span class="s1">'67e1a2e8-3747-43fa-b0dd-fc469a6f6a02'</span>,<span class="w"> </span><span class="s1">'taskResult'</span>:<span class="w"> </span><span class="s1">'success'</span>,
<span class="s1">'taskState'</span>:<span class="w"> </span><span class="s1">'finished'</span><span class="o">}}}</span>
</code></pre></div>
<p><strong>On the RHEV/ovirt manager</strong></p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span><span class="k">for</span><span class="w"> </span>i<span class="w"> </span><span class="k">in</span><span class="w"> </span>b4fe0c6d-d458-4ed2-a9e2-2c0d41914b8f<span class="w"> </span>feb3aaa5-ec1c-42a6-8f17-f7c94891b43f<span class="p">;</span><span class="w"> </span><span class="k">do</span><span class="w"> </span>psql<span class="w"> </span>--dbname<span class="o">=</span>engine<span class="w"> </span>--command<span class="o">=</span><span class="s2">"DELETE FROM async_tasks WHERE vdsm_task_id='</span><span class="si">${</span><span class="nv">i</span><span class="si">}</span><span class="s2">'"</span><span class="p">;</span><span class="w"> </span><span class="k">done</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span><span class="k">for</span><span class="w"> </span>j<span class="w"> </span><span class="k">in</span><span class="w"> </span>b4fe0c6d-d458-4ed2-a9e2-2c0d41914b8f<span class="w"> </span>feb3aaa5-ec1c-42a6-8f17-f7c94891b43f<span class="p">;</span><span class="w"> </span><span class="k">do</span><span class="w"> </span>vdsClient<span class="w"> </span>-s<span class="w"> </span><span class="m">0</span><span class="w"> </span>clearTask<span class="w"> </span><span class="si">${</span><span class="nv">j</span><span class="si">}</span><span class="p">;</span><span class="w"> </span><span class="k">done</span>
</code></pre></div>ROSE Xeon CW (2015) & power2max Rotor 3D+2016-08-24T15:27:00+02:002016-08-24T15:27:00+02:00rmicheltag:blog.devnu11.net,2016-08-24:/2016/08/rose-xeon-cw-2015-power2max-rotor-3d.html<p><strong>Rahmen</strong>: ROSE Xeon CW 2015</p>
<p><strong>Innenlager</strong>: Rotor Pressfit 4630 (PF46-68-30)</p>
<p><strong>Kurbel</strong>: Rotor 3D+ mit p2m Spider</p>
<p><strong>Spacer [<em>laut Specs</em>]{style="text-decoration: underline;"}</strong>: 1x A + 1x E auf der Ds, 1x A auf der NDs</p>
<p><strong>Spacer [<em>verbaut</em>]{style="text-decoration: underline;"}</strong>: 2x A auf der Ds</p>
<p>Mit den von Rotor vorgesehen Spacern …</p><p><strong>Rahmen</strong>: ROSE Xeon CW 2015</p>
<p><strong>Innenlager</strong>: Rotor Pressfit 4630 (PF46-68-30)</p>
<p><strong>Kurbel</strong>: Rotor 3D+ mit p2m Spider</p>
<p><strong>Spacer [<em>laut Specs</em>]{style="text-decoration: underline;"}</strong>: 1x A + 1x E auf der Ds, 1x A auf der NDs</p>
<p><strong>Spacer [<em>verbaut</em>]{style="text-decoration: underline;"}</strong>: 2x A auf der Ds</p>
<p>Mit den von Rotor vorgesehen Spacern schleift der Spider am Rahmen. Laut ROSE und einem Sportlabor ist es kein Problem den 2.5mm Spacer von der NDs auf die Ds zustecken.</p>RHEV/ovirt - find stucked / zombie tasks2016-08-14T23:30:00+02:002016-08-14T23:30:00+02:00rmicheltag:blog.devnu11.net,2016-08-14:/2016/08/rhevovirt-find-stucked-zombie-tasks.html<p><strong>Random notes</strong></p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>vdsClient<span class="w"> </span>-s<span class="w"> </span><span class="m">0</span><span class="w"> </span>getAllTasksStatuses
$<span class="w"> </span>vdsClient<span class="w"> </span>stopTask<span class="w"> </span>
$<span class="w"> </span>vdsClient<span class="w"> </span>clearTask<span class="w"> </span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="err">$</span><span class="w"> </span><span class="n">su</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">postgres</span>
<span class="err">$</span><span class="w"> </span><span class="n">psql</span><span class="w"> </span><span class="o">-</span><span class="n">d</span><span class="w"> </span><span class="n">engine</span><span class="w"> </span><span class="o">-</span><span class="n">U</span><span class="w"> </span><span class="n">postgres</span>
<span class="o">></span><span class="w"> </span><span class="k">select</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">from</span><span class="w"> </span><span class="n">job</span><span class="w"> </span><span class="k">order</span><span class="w"> </span><span class="k">by</span><span class="w"> </span><span class="n">start_time</span><span class="w"> </span><span class="k">desc</span><span class="p">;</span>
<span class="o">></span><span class="w"> </span><span class="k">select</span><span class="w"> </span><span class="n">DeleteJob</span><span class="p">(</span><span class="s1">'702e9f6a-e2a3-4113-bd7d-3757ba6bc4ef'</span><span class="p">);</span>
</code></pre></div>
<p>or</p>
<div class="highlight"><pre><span></span><code>/usr/share/ovirt-engine/dbscripts/engine-psql.sh<span class="w"> </span>-c<span class="w"> </span><span class="s2">"select * from job;"</span>
</code></pre></div>entropy inside a virtual machine2016-06-30T11:00:00+02:002016-06-30T11:00:00+02:00rmicheltag:blog.devnu11.net,2016-06-30:/2016/06/entropy-inside-a-virtual-machine.html<p>Sometimes my ceph-(test!)deployments inside a VM failed.</p>
<p>The Problem is that the kernel/cpu can not provide enough entropy (random numbers) for the <code>ceph-create-keys</code> command - so it stuck/hang. It is not a ceph problem! This can also happen with ssl commands.</p>
<p>But first things first - we need …</p><p>Sometimes my ceph-(test!)deployments inside a VM failed.</p>
<p>The Problem is that the kernel/cpu can not provide enough entropy (random numbers) for the <code>ceph-create-keys</code> command - so it stuck/hang. It is not a ceph problem! This can also happen with ssl commands.</p>
<p>But first things first - we need to check the available entropy on a system:</p>
<div class="highlight"><pre><span></span><code>cat<span class="w"> </span>/proc/sys/kernel/random/entropy_avail
</code></pre></div>
<p>The read-only file <code>entropy_avail</code> gives the available entropy.<br>
Normally, this will be 4096 (bits), a full entropy pool (see <a href="http://man7.org/linux/man-pages/man4/random.4.html">man 4 random</a>)</p>
<p>Values less than 100-200, means you have a problem!</p>
<p>For a virtual machine we can create a new device - virtio-rng. Here is a xml example for libvirt.</p>
<div class="highlight"><pre><span></span><code><span class="nt"><rng</span><span class="w"> </span><span class="na">model=</span><span class="s">'virtio'</span><span class="nt">></span>
<span class="w"> </span><span class="nt"><backend</span><span class="w"> </span><span class="na">model=</span><span class="s">'random'</span><span class="nt">></span>/dev/random<span class="nt"></backend></span>
<span class="nt"></rng></span>
</code></pre></div>
<p>That is ok for <strong>ONE</strong> virtual machine on the <strong>hypervisor</strong>. Usually we find more than one virtual machine. Therefore we need to install the <code>rng-tools</code> package on the virtual machines.</p>
<div class="highlight"><pre><span></span><code><span class="nv">$pkgmgr</span><span class="w"> </span>install<span class="w"> </span>rng-tools
systemctl<span class="w"> </span><span class="nb">enable</span><span class="w"> </span>rngd
systemctl<span class="w"> </span>start<span class="w"> </span>rngd
</code></pre></div>
<p>That's it! That solved a lot of my problems ;)</p>Mac OS - bashrc / homebrew - random notes2016-06-26T23:22:00+02:002016-06-26T23:22:00+02:00rmicheltag:blog.devnu11.net,2016-06-26:/2016/06/mac-os-bashrc-homebrew-random-notes.html<p><strong>bash-completion</strong></p>
<div class="highlight"><pre><span></span><code><span class="k">if</span><span class="w"> </span><span class="o">[</span><span class="w"> </span>-f<span class="w"> </span><span class="k">$(</span>brew<span class="w"> </span>--prefix<span class="k">)</span>/etc/bash_completion<span class="w"> </span><span class="o">]</span><span class="p">;</span><span class="w"> </span><span class="k">then</span>
<span class="w"> </span><span class="nb">source</span><span class="w"> </span><span class="k">$(</span>brew<span class="w"> </span>--prefix<span class="k">)</span>/etc/bash_completion
<span class="k">fi</span>
</code></pre></div>
<p><strong>generic colouriser</strong></p>
<p><a href="https://blog.devnu11.net/wp-content/uploads/Screen-Shot-2016-06-26-at-22.39.22.png">example - colour</a></p>
<div class="highlight"><pre><span></span><code><span class="k">if</span><span class="w"> </span><span class="o">[</span><span class="w"> </span>-f<span class="w"> </span><span class="k">$(</span>brew<span class="w"> </span>--prefix<span class="k">)</span>/etc/grc.bashrc<span class="w"> </span><span class="o">]</span><span class="p">;</span><span class="w"> </span><span class="k">then</span>
<span class="w"> </span><span class="nb">source</span><span class="w"> </span><span class="k">$(</span>brew<span class="w"> </span>--prefix<span class="k">)</span>/etc/grc.bashrc
<span class="k">fi</span>
</code></pre></div>
<p><strong>spotlight for cmd</strong></p>
<div class="highlight"><pre><span></span><code>spotlight<span class="w"> </span><span class="o">()</span><span class="w"> </span><span class="o">{</span><span class="w"> </span>mdfind<span class="w"> </span><span class="s2">"kMDItemDisplayName == '</span><span class="nv">$@</span><span class="s2">'wc"</span><span class="p">;</span><span class="w"> </span><span class="o">}</span>
</code></pre></div>Openstack Horizon - leapyear bug2016-02-29T23:35:00+01:002016-02-29T23:35:00+01:00rmicheltag:blog.devnu11.net,2016-02-29:/2016/02/openstack-horizon-leapyear-bug.html<p>Switching the language in the dashboard ends with a error.</p>
<p>"<strong>day is out of range for month</strong>"</p>
<p>eg. <a href="https://bugs.launchpad.net/horizon/+bug/1551099">https://bugs.launchpad.net/horizon/+bug/1551099</a></p>
<div class="highlight"><pre><span></span><code><span class="p">[</span><span class="n">Mon</span> <span class="n">Feb</span> <span class="mi">29</span> <span class="mi">09</span><span class="p">:</span><span class="mi">20</span><span class="p">:</span><span class="mi">05</span> <span class="mi">2016</span><span class="p">]</span> <span class="p">[</span><span class="n">error</span><span class="p">]</span> <span class="n">Internal</span> <span class="n">Server</span> <span class="n">Error</span><span class="p">:</span> <span class="o">/</span><span class="n">settings</span><span class="o">/</span>
<span class="p">[</span><span class="n">Mon</span> <span class="n">Feb</span> <span class="mi">29</span> <span class="mi">09</span><span class="p">:</span><span class="mi">20</span><span class="p">:</span><span class="mi">05</span> <span class="mi">2016</span><span class="p">]</span> <span class="p">[</span><span class="n">error</span><span class="p">]</span> <span class="n">Traceback</span> <span class="p">(</span><span class="n">most</span> <span class="n">recent</span> <span class="n">call</span> <span class="n">last …</span></code></pre></div><p>Switching the language in the dashboard ends with a error.</p>
<p>"<strong>day is out of range for month</strong>"</p>
<p>eg. <a href="https://bugs.launchpad.net/horizon/+bug/1551099">https://bugs.launchpad.net/horizon/+bug/1551099</a></p>
<div class="highlight"><pre><span></span><code><span class="p">[</span><span class="n">Mon</span> <span class="n">Feb</span> <span class="mi">29</span> <span class="mi">09</span><span class="p">:</span><span class="mi">20</span><span class="p">:</span><span class="mi">05</span> <span class="mi">2016</span><span class="p">]</span> <span class="p">[</span><span class="n">error</span><span class="p">]</span> <span class="n">Internal</span> <span class="n">Server</span> <span class="n">Error</span><span class="p">:</span> <span class="o">/</span><span class="n">settings</span><span class="o">/</span>
<span class="p">[</span><span class="n">Mon</span> <span class="n">Feb</span> <span class="mi">29</span> <span class="mi">09</span><span class="p">:</span><span class="mi">20</span><span class="p">:</span><span class="mi">05</span> <span class="mi">2016</span><span class="p">]</span> <span class="p">[</span><span class="n">error</span><span class="p">]</span> <span class="n">Traceback</span> <span class="p">(</span><span class="n">most</span> <span class="n">recent</span> <span class="n">call</span> <span class="n">last</span><span class="p">):</span>
<span class="p">[</span><span class="n">Mon</span> <span class="n">Feb</span> <span class="mi">29</span> <span class="mi">09</span><span class="p">:</span><span class="mi">20</span><span class="p">:</span><span class="mi">05</span> <span class="mi">2016</span><span class="p">]</span> <span class="p">[</span><span class="n">error</span><span class="p">]</span> <span class="n">File</span> <span class="s2">"/usr/lib64/python2.6/site-packages/django/core/handlers/base.py"</span><span class="p">,</span> <span class="n">line</span> <span class="mi">112</span><span class="p">,</span> <span class="ow">in</span> <span class="n">get_response</span>
<span class="p">[</span><span class="n">Mon</span> <span class="n">Feb</span> <span class="mi">29</span> <span class="mi">09</span><span class="p">:</span><span class="mi">20</span><span class="p">:</span><span class="mi">05</span> <span class="mi">2016</span><span class="p">]</span> <span class="p">[</span><span class="n">error</span><span class="p">]</span> <span class="n">response</span> <span class="o">=</span> <span class="n">wrapped_callback</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="o">*</span><span class="n">callback_args</span><span class="p">,</span> <span class="o">**</span><span class="n">callback_kwargs</span><span class="p">)</span>
<span class="p">[</span><span class="n">Mon</span> <span class="n">Feb</span> <span class="mi">29</span> <span class="mi">09</span><span class="p">:</span><span class="mi">20</span><span class="p">:</span><span class="mi">05</span> <span class="mi">2016</span><span class="p">]</span> <span class="p">[</span><span class="n">error</span><span class="p">]</span> <span class="n">File</span> <span class="s2">"/usr/lib64/python2.6/site-packages/horizon/decorators.py"</span><span class="p">,</span> <span class="n">line</span> <span class="mi">36</span><span class="p">,</span> <span class="ow">in</span> <span class="n">dec</span>
<span class="p">[</span><span class="n">Mon</span> <span class="n">Feb</span> <span class="mi">29</span> <span class="mi">09</span><span class="p">:</span><span class="mi">20</span><span class="p">:</span><span class="mi">05</span> <span class="mi">2016</span><span class="p">]</span> <span class="p">[</span><span class="n">error</span><span class="p">]</span> <span class="k">return</span> <span class="n">view_func</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
<span class="p">[</span><span class="n">Mon</span> <span class="n">Feb</span> <span class="mi">29</span> <span class="mi">09</span><span class="p">:</span><span class="mi">20</span><span class="p">:</span><span class="mi">05</span> <span class="mi">2016</span><span class="p">]</span> <span class="p">[</span><span class="n">error</span><span class="p">]</span> <span class="n">File</span> <span class="s2">"/usr/lib64/python2.6/site-packages/horizon/decorators.py"</span><span class="p">,</span> <span class="n">line</span> <span class="mi">52</span><span class="p">,</span> <span class="ow">in</span> <span class="n">dec</span>
<span class="p">[</span><span class="n">Mon</span> <span class="n">Feb</span> <span class="mi">29</span> <span class="mi">09</span><span class="p">:</span><span class="mi">20</span><span class="p">:</span><span class="mi">05</span> <span class="mi">2016</span><span class="p">]</span> <span class="p">[</span><span class="n">error</span><span class="p">]</span> <span class="k">return</span> <span class="n">view_func</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
<span class="p">[</span><span class="n">Mon</span> <span class="n">Feb</span> <span class="mi">29</span> <span class="mi">09</span><span class="p">:</span><span class="mi">20</span><span class="p">:</span><span class="mi">05</span> <span class="mi">2016</span><span class="p">]</span> <span class="p">[</span><span class="n">error</span><span class="p">]</span> <span class="n">File</span> <span class="s2">"/usr/lib64/python2.6/site-packages/horizon/decorators.py"</span><span class="p">,</span> <span class="n">line</span> <span class="mi">36</span><span class="p">,</span> <span class="ow">in</span> <span class="n">dec</span>
<span class="p">[</span><span class="n">Mon</span> <span class="n">Feb</span> <span class="mi">29</span> <span class="mi">09</span><span class="p">:</span><span class="mi">20</span><span class="p">:</span><span class="mi">05</span> <span class="mi">2016</span><span class="p">]</span> <span class="p">[</span><span class="n">error</span><span class="p">]</span> <span class="k">return</span> <span class="n">view_func</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
<span class="p">[</span><span class="n">Mon</span> <span class="n">Feb</span> <span class="mi">29</span> <span class="mi">09</span><span class="p">:</span><span class="mi">20</span><span class="p">:</span><span class="mi">05</span> <span class="mi">2016</span><span class="p">]</span> <span class="p">[</span><span class="n">error</span><span class="p">]</span> <span class="n">File</span> <span class="s2">"/usr/lib64/python2.6/site-packages/django/views/generic/base.py"</span><span class="p">,</span> <span class="n">line</span> <span class="mi">69</span><span class="p">,</span> <span class="ow">in</span> <span class="n">view</span>
<span class="p">[</span><span class="n">Mon</span> <span class="n">Feb</span> <span class="mi">29</span> <span class="mi">09</span><span class="p">:</span><span class="mi">20</span><span class="p">:</span><span class="mi">05</span> <span class="mi">2016</span><span class="p">]</span> <span class="p">[</span><span class="n">error</span><span class="p">]</span> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">dispatch</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
<span class="p">[</span><span class="n">Mon</span> <span class="n">Feb</span> <span class="mi">29</span> <span class="mi">09</span><span class="p">:</span><span class="mi">20</span><span class="p">:</span><span class="mi">05</span> <span class="mi">2016</span><span class="p">]</span> <span class="p">[</span><span class="n">error</span><span class="p">]</span> <span class="n">File</span> <span class="s2">"/usr/lib64/python2.6/site-packages/django/views/generic/base.py"</span><span class="p">,</span> <span class="n">line</span> <span class="mi">87</span><span class="p">,</span> <span class="ow">in</span> <span class="n">dispatch</span>
<span class="p">[</span><span class="n">Mon</span> <span class="n">Feb</span> <span class="mi">29</span> <span class="mi">09</span><span class="p">:</span><span class="mi">20</span><span class="p">:</span><span class="mi">05</span> <span class="mi">2016</span><span class="p">]</span> <span class="p">[</span><span class="n">error</span><span class="p">]</span> <span class="k">return</span> <span class="n">handler</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
<span class="p">[</span><span class="n">Mon</span> <span class="n">Feb</span> <span class="mi">29</span> <span class="mi">09</span><span class="p">:</span><span class="mi">20</span><span class="p">:</span><span class="mi">05</span> <span class="mi">2016</span><span class="p">]</span> <span class="p">[</span><span class="n">error</span><span class="p">]</span> <span class="n">File</span> <span class="s2">"/usr/lib64/python2.6/site-packages/django/views/generic/edit.py"</span><span class="p">,</span> <span class="n">line</span> <span class="mi">171</span><span class="p">,</span> <span class="ow">in</span> <span class="n">post</span>
<span class="p">[</span><span class="n">Mon</span> <span class="n">Feb</span> <span class="mi">29</span> <span class="mi">09</span><span class="p">:</span><span class="mi">20</span><span class="p">:</span><span class="mi">05</span> <span class="mi">2016</span><span class="p">]</span> <span class="p">[</span><span class="n">error</span><span class="p">]</span> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">form_valid</span><span class="p">(</span><span class="n">form</span><span class="p">)</span>
<span class="p">[</span><span class="n">Mon</span> <span class="n">Feb</span> <span class="mi">29</span> <span class="mi">09</span><span class="p">:</span><span class="mi">20</span><span class="p">:</span><span class="mi">05</span> <span class="mi">2016</span><span class="p">]</span> <span class="p">[</span><span class="n">error</span><span class="p">]</span> <span class="n">File</span> <span class="s2">"/srv/www/openstack-dashboard/openstack_dashboard/wsgi/../../openstack_dashboard/dashboards/settings/user/views.py"</span><span class="p">,</span> <span class="n">line</span> <span class="mi">38</span><span class="p">,</span> <span class="ow">in</span> <span class="n">form_valid</span>
<span class="p">[</span><span class="n">Mon</span> <span class="n">Feb</span> <span class="mi">29</span> <span class="mi">09</span><span class="p">:</span><span class="mi">20</span><span class="p">:</span><span class="mi">05</span> <span class="mi">2016</span><span class="p">]</span> <span class="p">[</span><span class="n">error</span><span class="p">]</span> <span class="k">return</span> <span class="n">form</span><span class="o">.</span><span class="n">handle</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">request</span><span class="p">,</span> <span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">)</span>
<span class="p">[</span><span class="n">Mon</span> <span class="n">Feb</span> <span class="mi">29</span> <span class="mi">09</span><span class="p">:</span><span class="mi">20</span><span class="p">:</span><span class="mi">05</span> <span class="mi">2016</span><span class="p">]</span> <span class="p">[</span><span class="n">error</span><span class="p">]</span> <span class="n">File</span> <span class="s2">"/srv/www/openstack-dashboard/openstack_dashboard/wsgi/../../openstack_dashboard/dashboards/settings/user/forms.py"</span><span class="p">,</span> <span class="n">line</span> <span class="mi">89</span><span class="p">,</span> <span class="ow">in</span> <span class="n">handle</span>
<span class="p">[</span><span class="n">Mon</span> <span class="n">Feb</span> <span class="mi">29</span> <span class="mi">09</span><span class="p">:</span><span class="mi">20</span><span class="p">:</span><span class="mi">05</span> <span class="mi">2016</span><span class="p">]</span> <span class="p">[</span><span class="n">error</span><span class="p">]</span> <span class="n">expires</span><span class="o">=</span><span class="n">_one_year</span><span class="p">())</span>
<span class="p">[</span><span class="n">Mon</span> <span class="n">Feb</span> <span class="mi">29</span> <span class="mi">09</span><span class="p">:</span><span class="mi">20</span><span class="p">:</span><span class="mi">05</span> <span class="mi">2016</span><span class="p">]</span> <span class="p">[</span><span class="n">error</span><span class="p">]</span> <span class="n">File</span> <span class="s2">"/srv/www/openstack-dashboard/openstack_dashboard/wsgi/../../openstack_dashboard/dashboards/settings/user/forms.py"</span><span class="p">,</span> <span class="n">line</span> <span class="mi">32</span><span class="p">,</span> <span class="ow">in</span> <span class="n">_one_year</span>
<span class="p">[</span><span class="n">Mon</span> <span class="n">Feb</span> <span class="mi">29</span> <span class="mi">09</span><span class="p">:</span><span class="mi">20</span><span class="p">:</span><span class="mi">05</span> <span class="mi">2016</span><span class="p">]</span> <span class="p">[</span><span class="n">error</span><span class="p">]</span> <span class="n">now</span><span class="o">.</span><span class="n">minute</span><span class="p">,</span> <span class="n">now</span><span class="o">.</span><span class="n">second</span><span class="p">,</span> <span class="n">now</span><span class="o">.</span><span class="n">microsecond</span><span class="p">,</span> <span class="n">now</span><span class="o">.</span><span class="n">tzinfo</span><span class="p">)</span>
<span class="p">[</span><span class="n">Mon</span> <span class="n">Feb</span> <span class="mi">29</span> <span class="mi">09</span><span class="p">:</span><span class="mi">20</span><span class="p">:</span><span class="mi">05</span> <span class="mi">2016</span><span class="p">]</span> <span class="p">[</span><span class="n">error</span><span class="p">]</span> <span class="ne">ValueError</span><span class="p">:</span> <span class="n">day</span> <span class="ow">is</span> <span class="n">out</span> <span class="n">of</span> <span class="nb">range</span> <span class="k">for</span> <span class="n">month</span>
</code></pre></div>SUSE Openstack Cloud - sleshammer - pre/post scripts - pxe trigger2016-02-24T23:45:00+01:002016-02-24T23:45:00+01:00rmicheltag:blog.devnu11.net,2016-02-24:/2016/02/suse-openstack-cloud-sleshammer-prepost-scripts-pxe-trigger.html<h3>Enable root login for the sleshammer image</h3>
<p>(it is used by the suse cloud as a hardware discovery image)</p>
<p>The sleshammer image will mount "/updates" over nfs from the admin node and execute the <code>control.sh</code>. This script will check if there are some pre/post-hooks and will possibly execute …</p><h3>Enable root login for the sleshammer image</h3>
<p>(it is used by the suse cloud as a hardware discovery image)</p>
<p>The sleshammer image will mount "/updates" over nfs from the admin node and execute the <code>control.sh</code>. This script will check if there are some pre/post-hooks and will possibly execute them.</p>
<div class="highlight"><pre><span></span><code>root@admin:/updates<span class="w"> </span><span class="c1"># cat /updates/discovered-pre/set-root-passwd.hook</span>
<span class="c1">#!/bin/bash</span>
<span class="nb">echo</span><span class="w"> </span><span class="s2">"root"</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>passwd<span class="w"> </span>--stdin<span class="w"> </span>root
<span class="nb">echo</span>
<span class="nb">echo</span>
<span class="nb">echo</span><span class="w"> </span><span class="s2">"ROOT LOGIN IS NOW ENABLED!"</span>
<span class="nb">echo</span>
<span class="nb">echo</span>
sleep<span class="w"> </span><span class="m">10</span>
</code></pre></div>
<p>Make sure that the hook set as executable!</p>
<p>SUSE Openstack Cloud supports only <code>pre</code> and <code>post</code> scripts. <code>discovered</code> is the state - <code>discovery</code> or <code>hardware-installed</code> should also work.</p>
<p>BTW: You can also create custom control.sh-script (and also hooks) for a node!</p>
<div class="highlight"><pre><span></span><code>mkdir /updates/d52-54-00-9e-a6-90.cloud.default.net/
cp /updates/control.sh /updates/d52-54-00-9e-a6-90.cloud.default.net/
</code></pre></div>
<h3>Some random notes - discovery/install</h3>
<p><strong>default pxelinux configuration</strong><br>
(see <a href="http://admin-node:8091/discovery/pxelinux.cfg/">http://admin-node:8091/discovery/pxelinux.cfg/</a>)</p>
<div class="highlight"><pre><span></span><code><span class="n">DEFAULT</span> <span class="n">discovery</span>
<span class="n">PROMPT</span> <span class="mi">0</span>
<span class="n">TIMEOUT</span> <span class="mi">10</span>
<span class="n">LABEL</span> <span class="n">discovery</span>
<span class="n">KERNEL</span> <span class="n">vmlinuz0</span>
<span class="n">append</span> <span class="n">initrd</span><span class="o">=</span><span class="n">initrd0</span><span class="p">.</span><span class="n">img</span> <span class="n">crowbar</span><span class="p">.</span><span class="n">install</span><span class="p">.</span><span class="n">key</span><span class="o">=</span><span class="n">machine</span><span class="o">-</span><span class="n">install</span><span class="p">:</span><span class="mi">34</span><span class="n">e4b23a970dbb05df9c91e0c1cf4b512ecaa7b839c942b95d86db1962178ead69774a9dc8630b13da171bcca0ea204c07575997822b3ec1de984da97fca5b84</span> <span class="n">crowbar</span><span class="p">.</span><span class="n">hostname</span><span class="o">=</span><span class="n">d52</span><span class="o">-</span><span class="mi">54</span><span class="o">-</span><span class="mi">00</span><span class="o">-</span><span class="mi">8</span><span class="n">b</span><span class="o">-</span><span class="n">c2</span><span class="o">-</span><span class="mi">17</span><span class="p">.</span><span class="n">cloud</span><span class="p">.</span><span class="n">default</span><span class="p">.</span><span class="n">net</span> <span class="n">crowbar</span><span class="p">.</span><span class="n">state</span><span class="o">=</span><span class="n">discovery</span>
<span class="n">IPAPPEND</span> <span class="mi">2</span>
</code></pre></div>
<p><strong>allocated node</strong></p>
<p>The sleshammer-image will wait for this entry (.*_install) on the admin-node once you allocate a node.</p>
<div class="highlight"><pre><span></span><code><span class="n">DEFAULT</span><span class="w"> </span><span class="n">suse</span><span class="o">-</span><span class="mf">11.3</span><span class="n">_install</span>
<span class="n">PROMPT</span><span class="w"> </span><span class="mi">0</span>
<span class="n">TIMEOUT</span><span class="w"> </span><span class="mi">10</span>
<span class="n">LABEL</span><span class="w"> </span><span class="n">suse</span><span class="o">-</span><span class="mf">11.3</span><span class="n">_install</span>
<span class="w"> </span><span class="n">KERNEL</span><span class="w"> </span><span class="o">../</span><span class="n">suse</span><span class="o">-</span><span class="mf">11.3</span><span class="o">/</span><span class="n">install</span><span class="o">/</span><span class="n">boot</span><span class="o">/</span><span class="n">x86_64</span><span class="o">/</span><span class="n">loader</span><span class="o">/</span><span class="n">linux</span>
<span class="w"> </span><span class="n">append</span><span class="w"> </span><span class="n">initrd</span><span class="o">=../</span><span class="n">suse</span><span class="o">-</span><span class="mf">11.3</span><span class="o">/</span><span class="n">install</span><span class="o">/</span><span class="n">boot</span><span class="o">/</span><span class="n">x86_64</span><span class="o">/</span><span class="n">loader</span><span class="o">/</span><span class="n">initrd</span><span class="w"> </span><span class="n">crowbar</span><span class="o">.</span><span class="n">install</span><span class="o">.</span><span class="n">key</span><span class="o">=</span><span class="n">machine</span><span class="o">-</span><span class="n">install</span><span class="p">:</span><span class="mf">34e4</span><span class="n">b23a970dbb05df9c91e0c1cf4b512ecaa7b839c942b95d86db1962178ead69774a9dc8630b13da171bcca0ea204c07575997822b3ec1de984da97fca5b84</span><span class="w"> </span><span class="n">install</span><span class="o">=</span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="mf">192.168</span><span class="o">.</span><span class="mf">124.10</span><span class="p">:</span><span class="mi">8091</span><span class="o">/</span><span class="n">suse</span><span class="o">-</span><span class="mf">11.3</span><span class="o">/</span><span class="n">install</span><span class="w"> </span><span class="n">autoyast</span><span class="o">=</span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="mf">192.168</span><span class="o">.</span><span class="mf">124.10</span><span class="p">:</span><span class="mi">8091</span><span class="o">/</span><span class="n">nodes</span><span class="o">/</span><span class="n">d52</span><span class="o">-</span><span class="mi">54</span><span class="o">-</span><span class="mi">00</span><span class="o">-</span><span class="mi">8</span><span class="n">b</span><span class="o">-</span><span class="n">c2</span><span class="o">-</span><span class="mf">17.</span><span class="n">cloud</span><span class="o">.</span><span class="n">default</span><span class="o">.</span><span class="n">net</span><span class="o">/</span><span class="n">autoyast</span><span class="o">.</span><span class="n">xml</span><span class="w"> </span><span class="n">ifcfg</span><span class="o">=</span><span class="n">dhcp4</span><span class="w"> </span><span class="n">netwait</span><span class="o">=</span><span class="mi">60</span>
<span class="w"> </span><span class="n">IPAPPEND</span><span class="w"> </span><span class="mi">2</span>
</code></pre></div>delete HSTS cache on chrome2016-01-04T14:18:00+01:002016-01-04T14:18:00+01:00rmicheltag:blog.devnu11.net,2016-01-04:/2016/01/delete-hsts-cache-on-chrome.html<ol>
<li>Goto <code>chrome://net-internals/#hsts</code></li>
<li>"<strong>Delete Domain</strong>"</li>
</ol>openvswitch and OpenFlow2015-09-04T14:05:00+02:002015-09-04T14:05:00+02:00rmicheltag:blog.devnu11.net,2015-09-04:/2015/09/openvswitch-and-openflow.html<p><img alt="openflow" src="http://blog.devnu11.net/wp-content/uploads/openflow-1.png"></p>
<h2>Layer 1</h2>
<div class="highlight"><pre><span></span><code>ovs-ofctl<span class="w"> </span>del-flow<span class="w"> </span>BRIDGE
ovs-ofctl<span class="w"> </span>add-flow<span class="w"> </span>BRIDGE<span class="w"> </span><span class="nv">priority</span><span class="o">=</span><span class="m">500</span>,in_port<span class="o">=</span><span class="m">1</span>,actions<span class="o">=</span>output:2
ovs-ofctl<span class="w"> </span>add-flow<span class="w"> </span>BRIDGE<span class="w"> </span><span class="nv">priority</span><span class="o">=</span><span class="m">500</span>,in_port<span class="o">=</span><span class="m">2</span>,actions<span class="o">=</span>output:1
ovs-ofctl<span class="w"> </span>dump-flows<span class="w"> </span>BRIDGE
</code></pre></div>
<h2>Layer 2</h2>
<div class="highlight"><pre><span></span><code>ovs-ofctl<span class="w"> </span>del-flow<span class="w"> </span>BRIDGE
ovs-ofctl<span class="w"> </span>add-flow<span class="w"> </span>BRIDGE<span class="w"> </span><span class="nv">dl_src</span><span class="o">=</span><span class="m">00</span>:00:00:00:00:01,dl_dst<span class="o">=</span><span class="m">00</span>:00:00:00:00:02 …</code></pre></div><p><img alt="openflow" src="http://blog.devnu11.net/wp-content/uploads/openflow-1.png"></p>
<h2>Layer 1</h2>
<div class="highlight"><pre><span></span><code>ovs-ofctl<span class="w"> </span>del-flow<span class="w"> </span>BRIDGE
ovs-ofctl<span class="w"> </span>add-flow<span class="w"> </span>BRIDGE<span class="w"> </span><span class="nv">priority</span><span class="o">=</span><span class="m">500</span>,in_port<span class="o">=</span><span class="m">1</span>,actions<span class="o">=</span>output:2
ovs-ofctl<span class="w"> </span>add-flow<span class="w"> </span>BRIDGE<span class="w"> </span><span class="nv">priority</span><span class="o">=</span><span class="m">500</span>,in_port<span class="o">=</span><span class="m">2</span>,actions<span class="o">=</span>output:1
ovs-ofctl<span class="w"> </span>dump-flows<span class="w"> </span>BRIDGE
</code></pre></div>
<h2>Layer 2</h2>
<div class="highlight"><pre><span></span><code>ovs-ofctl<span class="w"> </span>del-flow<span class="w"> </span>BRIDGE
ovs-ofctl<span class="w"> </span>add-flow<span class="w"> </span>BRIDGE<span class="w"> </span><span class="nv">dl_src</span><span class="o">=</span><span class="m">00</span>:00:00:00:00:01,dl_dst<span class="o">=</span><span class="m">00</span>:00:00:00:00:02,actions<span class="o">=</span>output:2
ovs-ofctl<span class="w"> </span>add-flow<span class="w"> </span>BRIDGE<span class="w"> </span><span class="nv">dl_src</span><span class="o">=</span><span class="m">00</span>:00:00:00:00:02,dl_dst<span class="o">=</span><span class="m">00</span>:00:00:00:00:01,actions<span class="o">=</span>output:1
ovs-ofctl<span class="w"> </span>add-flow<span class="w"> </span>BRIDGE<span class="w"> </span><span class="nv">dl_type</span><span class="o">=</span>0x806,nw_proto<span class="o">=</span><span class="m">1</span>,actions<span class="o">=</span>flood
ovs-ofctl<span class="w"> </span>dump-flows<span class="w"> </span>BRIDGE<span class="w"> </span>
</code></pre></div>
<h2>Layer 3</h2>
<div class="highlight"><pre><span></span><code>ovs-ofctl<span class="w"> </span>del-flow<span class="w"> </span>BRIDGE
ovs-ofctl<span class="w"> </span>add-flow<span class="w"> </span>BRIDGE<span class="w"> </span><span class="nv">priority</span><span class="o">=</span><span class="m">500</span>,dl_type<span class="o">=</span>0x800,nw_src<span class="o">=</span><span class="m">10</span>.0.0.0/24,nw_dst<span class="o">=</span><span class="m">10</span>.0.0.0/24,actions<span class="o">=</span>normal
ovs-ofctl<span class="w"> </span>add-flow<span class="w"> </span>BRIDGE<span class="w"> </span><span class="nv">priority</span><span class="o">=</span><span class="m">800</span>,ip,nw_src<span class="o">=</span><span class="m">10</span>.0.0.3,actions<span class="o">=</span><span class="nv">mod_nw_tos</span><span class="o">=</span><span class="m">184</span>,normal
ovs-ofctl<span class="w"> </span>add-flow<span class="w"> </span>BRIDGE<span class="w"> </span>arp,nw_dst<span class="o">=</span><span class="m">10</span>.0.0.1,actions<span class="o">=</span>output:1
ovs-ofctl<span class="w"> </span>add-flow<span class="w"> </span>BRIDGE<span class="w"> </span>arp,nw_dst<span class="o">=</span><span class="m">10</span>.0.0.2,actions<span class="o">=</span>output:2
ovs-ofctl<span class="w"> </span>add-flow<span class="w"> </span>BRIDGE<span class="w"> </span>arp,nw_dst<span class="o">=</span><span class="m">10</span>.0.0.3,actions<span class="o">=</span>output:3
ovs-ofctl<span class="w"> </span>dump-flows<span class="w"> </span>BRIDGE<span class="w"> </span>
</code></pre></div>
<h2>Layer 4</h2>
<div class="highlight"><pre><span></span><code>ovs-ofctl<span class="w"> </span>del-flow<span class="w"> </span>BRIDGE<span class="w"> </span>
ovs-ofctl<span class="w"> </span>add-flow<span class="w"> </span>BRIDGE<span class="w"> </span>arp,actions<span class="o">=</span>normal
ovs-ofctl<span class="w"> </span>add-flow<span class="w"> </span>BRIDGE<span class="w"> </span><span class="nv">priority</span><span class="o">=</span><span class="m">500</span>,dl_type<span class="o">=</span>0x800,nw_proto<span class="o">=</span><span class="m">6</span>,tp_dst<span class="o">=</span><span class="m">80</span>,actions<span class="o">=</span>output:3
ovs-ofctl<span class="w"> </span>add-flow<span class="w"> </span>BRIDGE<span class="w"> </span><span class="nv">priority</span><span class="o">=</span><span class="m">800</span>,ip,nw_src<span class="o">=</span><span class="m">10</span>.0.0.3,actions<span class="o">=</span>normal
ovs-ofctl<span class="w"> </span>dump-flows<span class="w"> </span>BRIDGE<span class="w"> </span>
</code></pre></div>
<hr>
<h2>Priority rules</h2>
<p>When no priority is set is the default – 32768! Allowed values are from 0 to 65536. A higher priority will match at first.</p>
<hr>
<h2><code>dl_type</code> and <code>nw_proto</code></h2>
<p><code>dl_type</code> and <code>nw_proto</code> are filters to match a specific network packet. Generally <code>dl_type</code> is for <strong><a href="#Layer2">L2</a></strong> (matches <a href="https://en.wikipedia.org/wiki/EtherType">ethertype</a>) and nw_proto (matches <a href="https://en.wikipedia.org/wiki/List_of_IP_protocol_numbers">IP protocol type</a>) for <strong><a href="Layer3">L3</a></strong> actions. For example:</p>
<ul>
<li><code>dl_type=0x800</code> – for ipv4 packets</li>
<li><code>dl_type=0x86dd</code> – for ipv6 packets</li>
<li><code>dl_type=0x806</code> and <code>nw_proto=1</code>– match only arp requests (ARP opcode, see <strong><a href="#Layer2">Layer 2</a></strong>)</li>
<li><code>dl_type=0x800</code> or <code>ip</code> (as keyword, see <a href="#Layer3"><strong>layer 3</strong></a> has the same meaning</li>
<li><code>ip</code> and <code>nw_proto=17</code> – udp packets</li>
<li><code>ip</code> and <code>nw_proto=6</code>– tcp packets</li>
</ul>
<hr>
<p>Parameters for <ins>actions</ins> can be (excerpt)</p>
<ul>
<li><code>normal</code> – Default mode, OVS acts like a normal L2 switch</li>
<li><code>drop</code> – drops all packets</li>
<li><code>output</code> – define the output port for a packet/rule</li>
<li><code>resubmit</code> – useful for multiple tables, resend a packet to a port or table</li>
<li><code>flood</code> – forword all packets on all port except the port on which it was received</li>
<li><code>strip_vlan</code> – remove a vlan tag from a packet</li>
<li><code>set_tunnel</code> – set a tunnel id (gre & vxlan)</li>
<li><code>mod_vlan_vid</code> – add a vlan tag for a packet</li>
<li><code>learn</code> – complex foo 😉</li>
</ul>
<p><a href="http://openvswitch.org/support/dist-docs/ovs-ofctl.8.txt">ovs-ofctl man page</a></p>
<hr>
<p>Example from a openstack node (w/ GRE, see table 22) – ovs flows from the br-tun device</p>
<div class="highlight"><pre><span></span><code><span class="o">[</span>root@node1<span class="w"> </span>~<span class="o">]</span><span class="c1"># ovs-ofctl dump-flows br-tun</span>
NXST_FLOW<span class="w"> </span>reply<span class="w"> </span><span class="o">(</span><span class="nv">xid</span><span class="o">=</span>0x4<span class="o">)</span>:
<span class="nv">cookie</span><span class="o">=</span>0x0,<span class="w"> </span><span class="nv">duration</span><span class="o">=</span><span class="m">1221</span>.218s,<span class="w"> </span><span class="nv">table</span><span class="o">=</span><span class="m">0</span>,<span class="w"> </span><span class="nv">n_packets</span><span class="o">=</span><span class="m">0</span>,<span class="w"> </span><span class="nv">n_bytes</span><span class="o">=</span><span class="m">0</span>,<span class="w"> </span><span class="nv">idle_age</span><span class="o">=</span><span class="m">1221</span>,<span class="w"> </span><span class="nv">priority</span><span class="o">=</span><span class="m">0</span><span class="w"> </span><span class="nv">actions</span><span class="o">=</span>drop
<span class="nv">cookie</span><span class="o">=</span>0x0,<span class="w"> </span><span class="nv">duration</span><span class="o">=</span><span class="m">1221</span>.323s,<span class="w"> </span><span class="nv">table</span><span class="o">=</span><span class="m">0</span>,<span class="w"> </span><span class="nv">n_packets</span><span class="o">=</span><span class="m">747</span>,<span class="w"> </span><span class="nv">n_bytes</span><span class="o">=</span><span class="m">54800</span>,<span class="w"> </span><span class="nv">idle_age</span><span class="o">=</span><span class="m">0</span>,<span class="w"> </span><span class="nv">priority</span><span class="o">=</span><span class="m">1</span>,in_port<span class="o">=</span><span class="m">1</span><span class="w"> </span><span class="nv">actions</span><span class="o">=</span>resubmit<span class="o">(</span>,2<span class="o">)</span>
<span class="nv">cookie</span><span class="o">=</span>0x0,<span class="w"> </span><span class="nv">duration</span><span class="o">=</span><span class="m">1220</span>.226s,<span class="w"> </span><span class="nv">table</span><span class="o">=</span><span class="m">0</span>,<span class="w"> </span><span class="nv">n_packets</span><span class="o">=</span><span class="m">0</span>,<span class="w"> </span><span class="nv">n_bytes</span><span class="o">=</span><span class="m">0</span>,<span class="w"> </span><span class="nv">idle_age</span><span class="o">=</span><span class="m">1220</span>,<span class="w"> </span><span class="nv">priority</span><span class="o">=</span><span class="m">1</span>,in_port<span class="o">=</span><span class="m">2</span><span class="w"> </span><span class="nv">actions</span><span class="o">=</span>resubmit<span class="o">(</span>,3<span class="o">)</span>
<span class="nv">cookie</span><span class="o">=</span>0x0,<span class="w"> </span><span class="nv">duration</span><span class="o">=</span><span class="m">1221</span>.126s,<span class="w"> </span><span class="nv">table</span><span class="o">=</span><span class="m">2</span>,<span class="w"> </span><span class="nv">n_packets</span><span class="o">=</span><span class="m">0</span>,<span class="w"> </span><span class="nv">n_bytes</span><span class="o">=</span><span class="m">0</span>,<span class="w"> </span><span class="nv">idle_age</span><span class="o">=</span><span class="m">1221</span>,<span class="w"> </span><span class="nv">priority</span><span class="o">=</span><span class="m">0</span>,dl_dst<span class="o">=</span><span class="m">00</span>:00:00:00:00:00/01:00:00:00:00:00<span class="w"> </span><span class="nv">actions</span><span class="o">=</span>resubmit<span class="o">(</span>,20<span class="o">)</span>
<span class="nv">cookie</span><span class="o">=</span>0x0,<span class="w"> </span><span class="nv">duration</span><span class="o">=</span><span class="m">1221</span>.051s,<span class="w"> </span><span class="nv">table</span><span class="o">=</span><span class="m">2</span>,<span class="w"> </span><span class="nv">n_packets</span><span class="o">=</span><span class="m">747</span>,<span class="w"> </span><span class="nv">n_bytes</span><span class="o">=</span><span class="m">54800</span>,<span class="w"> </span><span class="nv">idle_age</span><span class="o">=</span><span class="m">0</span>,<span class="w"> </span><span class="nv">priority</span><span class="o">=</span><span class="m">0</span>,dl_dst<span class="o">=</span><span class="m">01</span>:00:00:00:00:00/01:00:00:00:00:00<span class="w"> </span><span class="nv">actions</span><span class="o">=</span>resubmit<span class="o">(</span>,22<span class="o">)</span>
<span class="nv">cookie</span><span class="o">=</span>0x0,<span class="w"> </span><span class="nv">duration</span><span class="o">=</span><span class="m">1220</span>.974s,<span class="w"> </span><span class="nv">table</span><span class="o">=</span><span class="m">3</span>,<span class="w"> </span><span class="nv">n_packets</span><span class="o">=</span><span class="m">0</span>,<span class="w"> </span><span class="nv">n_bytes</span><span class="o">=</span><span class="m">0</span>,<span class="w"> </span><span class="nv">idle_age</span><span class="o">=</span><span class="m">1220</span>,<span class="w"> </span><span class="nv">priority</span><span class="o">=</span><span class="m">0</span><span class="w"> </span><span class="nv">actions</span><span class="o">=</span>drop
<span class="nv">cookie</span><span class="o">=</span>0x0,<span class="w"> </span><span class="nv">duration</span><span class="o">=</span><span class="m">1218</span>.706s,<span class="w"> </span><span class="nv">table</span><span class="o">=</span><span class="m">3</span>,<span class="w"> </span><span class="nv">n_packets</span><span class="o">=</span><span class="m">0</span>,<span class="w"> </span><span class="nv">n_bytes</span><span class="o">=</span><span class="m">0</span>,<span class="w"> </span><span class="nv">idle_age</span><span class="o">=</span><span class="m">1218</span>,<span class="w"> </span><span class="nv">priority</span><span class="o">=</span><span class="m">1</span>,tun_id<span class="o">=</span>0x3f7<span class="w"> </span><span class="nv">actions</span><span class="o">=</span>mod_vlan_vid:1,resubmit<span class="o">(</span>,10<span class="o">)</span>
<span class="nv">cookie</span><span class="o">=</span>0x0,<span class="w"> </span><span class="nv">duration</span><span class="o">=</span><span class="m">1217</span>.462s,<span class="w"> </span><span class="nv">table</span><span class="o">=</span><span class="m">3</span>,<span class="w"> </span><span class="nv">n_packets</span><span class="o">=</span><span class="m">0</span>,<span class="w"> </span><span class="nv">n_bytes</span><span class="o">=</span><span class="m">0</span>,<span class="w"> </span><span class="nv">idle_age</span><span class="o">=</span><span class="m">1217</span>,<span class="w"> </span><span class="nv">priority</span><span class="o">=</span><span class="m">1</span>,tun_id<span class="o">=</span>0x442<span class="w"> </span><span class="nv">actions</span><span class="o">=</span>mod_vlan_vid:2,resubmit<span class="o">(</span>,10<span class="o">)</span>
<span class="nv">cookie</span><span class="o">=</span>0x0,<span class="w"> </span><span class="nv">duration</span><span class="o">=</span><span class="m">1220</span>.898s,<span class="w"> </span><span class="nv">table</span><span class="o">=</span><span class="m">4</span>,<span class="w"> </span><span class="nv">n_packets</span><span class="o">=</span><span class="m">0</span>,<span class="w"> </span><span class="nv">n_bytes</span><span class="o">=</span><span class="m">0</span>,<span class="w"> </span><span class="nv">idle_age</span><span class="o">=</span><span class="m">1220</span>,<span class="w"> </span><span class="nv">priority</span><span class="o">=</span><span class="m">0</span><span class="w"> </span><span class="nv">actions</span><span class="o">=</span>drop
<span class="nv">cookie</span><span class="o">=</span>0x0,<span class="w"> </span><span class="nv">duration</span><span class="o">=</span><span class="m">1220</span>.821s,<span class="w"> </span><span class="nv">table</span><span class="o">=</span><span class="m">10</span>,<span class="w"> </span><span class="nv">n_packets</span><span class="o">=</span><span class="m">0</span>,<span class="w"> </span><span class="nv">n_bytes</span><span class="o">=</span><span class="m">0</span>,<span class="w"> </span><span class="nv">idle_age</span><span class="o">=</span><span class="m">1220</span>,<span class="w"> </span><span class="nv">priority</span><span class="o">=</span><span class="m">1</span><span class="w"> </span><span class="nv">actions</span><span class="o">=</span>learn<span class="o">(</span><span class="nv">table</span><span class="o">=</span><span class="m">20</span>,hard_timeout<span class="o">=</span><span class="m">300</span>,priority<span class="o">=</span><span class="m">1</span>,NXM_OF_VLAN_TCI<span class="o">[</span><span class="m">0</span>..11<span class="o">]</span>,NXM_OF_ETH_DST<span class="o">[]=</span>NXM_OF_ETH_SRC<span class="o">[]</span>,load:0->NXM_OF_VLAN_TCI<span class="o">[]</span>,load:NXM_NX_TUN_ID<span class="o">[]</span>->NXM_NX_TUN_ID<span class="o">[]</span>,output:NXM_OF_IN_PORT<span class="o">[])</span>,output:1
<span class="nv">cookie</span><span class="o">=</span>0x0,<span class="w"> </span><span class="nv">duration</span><span class="o">=</span><span class="m">1220</span>.742s,<span class="w"> </span><span class="nv">table</span><span class="o">=</span><span class="m">20</span>,<span class="w"> </span><span class="nv">n_packets</span><span class="o">=</span><span class="m">0</span>,<span class="w"> </span><span class="nv">n_bytes</span><span class="o">=</span><span class="m">0</span>,<span class="w"> </span><span class="nv">idle_age</span><span class="o">=</span><span class="m">1220</span>,<span class="w"> </span><span class="nv">priority</span><span class="o">=</span><span class="m">0</span><span class="w"> </span><span class="nv">actions</span><span class="o">=</span>resubmit<span class="o">(</span>,22<span class="o">)</span>
<span class="nv">cookie</span><span class="o">=</span>0x0,<span class="w"> </span><span class="nv">duration</span><span class="o">=</span><span class="m">1220</span>.666s,<span class="w"> </span><span class="nv">table</span><span class="o">=</span><span class="m">22</span>,<span class="w"> </span><span class="nv">n_packets</span><span class="o">=</span><span class="m">137</span>,<span class="w"> </span><span class="nv">n_bytes</span><span class="o">=</span><span class="m">21860</span>,<span class="w"> </span><span class="nv">idle_age</span><span class="o">=</span><span class="m">13</span>,<span class="w"> </span><span class="nv">priority</span><span class="o">=</span><span class="m">0</span><span class="w"> </span><span class="nv">actions</span><span class="o">=</span>drop
<span class="nv">cookie</span><span class="o">=</span>0x0,<span class="w"> </span><span class="nv">duration</span><span class="o">=</span><span class="m">1220</span>.093s,<span class="w"> </span><span class="nv">table</span><span class="o">=</span><span class="m">22</span>,<span class="w"> </span><span class="nv">n_packets</span><span class="o">=</span><span class="m">610</span>,<span class="w"> </span><span class="nv">n_bytes</span><span class="o">=</span><span class="m">32940</span>,<span class="w"> </span><span class="nv">idle_age</span><span class="o">=</span><span class="m">0</span>,<span class="w"> </span><span class="nv">hard_age</span><span class="o">=</span><span class="m">1217</span>,<span class="w"> </span><span class="nv">dl_vlan</span><span class="o">=</span><span class="m">2</span><span class="w"> </span><span class="nv">actions</span><span class="o">=</span>strip_vlan,set_tunnel:0x442,output:2
<span class="nv">cookie</span><span class="o">=</span>0x0,<span class="w"> </span><span class="nv">duration</span><span class="o">=</span><span class="m">1219</span>.970s,<span class="w"> </span><span class="nv">table</span><span class="o">=</span><span class="m">22</span>,<span class="w"> </span><span class="nv">n_packets</span><span class="o">=</span><span class="m">0</span>,<span class="w"> </span><span class="nv">n_bytes</span><span class="o">=</span><span class="m">0</span>,<span class="w"> </span><span class="nv">idle_age</span><span class="o">=</span><span class="m">1219</span>,<span class="w"> </span><span class="nv">hard_age</span><span class="o">=</span><span class="m">1218</span>,<span class="w"> </span><span class="nv">dl_vlan</span><span class="o">=</span><span class="m">1</span><span class="w"> </span><span class="nv">actions</span><span class="o">=</span>strip_vlan,set_tunnel:0x3f7,output:2
</code></pre></div>Gentoo - initramfs with busybox, lvm and some more...2015-08-11T13:39:00+02:002015-08-11T13:39:00+02:00rmicheltag:blog.devnu11.net,2015-08-11:/2015/08/gentoo-initramfs-with-busybox-lvm-and-some-more.html<p><strong>Preparations</strong></p>
<div class="highlight"><pre><span></span><code>mkdir<span class="w"> </span>-p<span class="w"> </span>/usr/src/initramfs/<span class="o">{</span>bin,lib/modules,dev,etc,mnt/root,proc,root,sbin,sys<span class="o">}</span>
cp<span class="w"> </span>-a<span class="w"> </span>/dev/<span class="o">{</span>null,console,tty,sda*<span class="o">}</span><span class="w"> </span>/usr/src/initramfs/dev/
</code></pre></div>
<p><strong>busybox</strong></p>
<div class="highlight"><pre><span></span><code><span class="nv">USE</span><span class="o">=</span><span class="s2">"static make-symlinks -pam -savedconfig"</span><span class="w"> </span>emerge<span class="w"> </span>--root<span class="o">=</span>/usr/src/initramfs/<span class="w"> </span>-av<span class="w"> </span>busybox
</code></pre></div>
<p><strong>LVM</strong><br>
LVM provides already a static binary :)</p>
<div class="highlight"><pre><span></span><code>cp<span class="w"> </span>/sbin …</code></pre></div><p><strong>Preparations</strong></p>
<div class="highlight"><pre><span></span><code>mkdir<span class="w"> </span>-p<span class="w"> </span>/usr/src/initramfs/<span class="o">{</span>bin,lib/modules,dev,etc,mnt/root,proc,root,sbin,sys<span class="o">}</span>
cp<span class="w"> </span>-a<span class="w"> </span>/dev/<span class="o">{</span>null,console,tty,sda*<span class="o">}</span><span class="w"> </span>/usr/src/initramfs/dev/
</code></pre></div>
<p><strong>busybox</strong></p>
<div class="highlight"><pre><span></span><code><span class="nv">USE</span><span class="o">=</span><span class="s2">"static make-symlinks -pam -savedconfig"</span><span class="w"> </span>emerge<span class="w"> </span>--root<span class="o">=</span>/usr/src/initramfs/<span class="w"> </span>-av<span class="w"> </span>busybox
</code></pre></div>
<p><strong>LVM</strong><br>
LVM provides already a static binary :)</p>
<div class="highlight"><pre><span></span><code>cp<span class="w"> </span>/sbin/lvm.static<span class="w"> </span>/usr/src/initramfs/lvm
</code></pre></div>ldap initial configuration2015-03-06T08:17:00+01:002015-03-06T08:17:00+01:00rmicheltag:blog.devnu11.net,2015-03-06:/2015/03/ldap-initial-configuration.html<p>A more or less <strong>initial</strong> configuration for openldap (>2.4)</p>
<div class="highlight"><pre><span></span><code><span class="c1">##</span>
<span class="c1"># to import run:</span>
<span class="c1"># ldapmodify -Y EXTERNAL -H ldapi:/// -f $filename</span>
<span class="c1">#</span>
<span class="c1"># to verfiy run:</span>
<span class="c1"># ldapsearch -Y EXTERNAL -H ldapi:/// -b "olcDatabase={1}hdb,cn=config"</span>
<span class="c1">#</span>
<span class="c1"># to create a password:</span>
<span class="c1"># slappasswd -h {SSHA} -s admin</span>
<span class="c1">##</span>
<span class="n">dn</span><span class="p">:</span> <span class="n">olcDatabase</span><span class="o">=</span><span class="p">{</span><span class="mi">1</span><span class="p">}</span><span class="n">hdb</span><span class="p">,</span><span class="n">cn</span><span class="o">=</span><span class="n">config</span>
<span class="n">changetype …</span></code></pre></div><p>A more or less <strong>initial</strong> configuration for openldap (>2.4)</p>
<div class="highlight"><pre><span></span><code><span class="c1">##</span>
<span class="c1"># to import run:</span>
<span class="c1"># ldapmodify -Y EXTERNAL -H ldapi:/// -f $filename</span>
<span class="c1">#</span>
<span class="c1"># to verfiy run:</span>
<span class="c1"># ldapsearch -Y EXTERNAL -H ldapi:/// -b "olcDatabase={1}hdb,cn=config"</span>
<span class="c1">#</span>
<span class="c1"># to create a password:</span>
<span class="c1"># slappasswd -h {SSHA} -s admin</span>
<span class="c1">##</span>
<span class="n">dn</span><span class="p">:</span> <span class="n">olcDatabase</span><span class="o">=</span><span class="p">{</span><span class="mi">1</span><span class="p">}</span><span class="n">hdb</span><span class="p">,</span><span class="n">cn</span><span class="o">=</span><span class="n">config</span>
<span class="n">changetype</span><span class="p">:</span> <span class="n">modify</span>
<span class="n">replace</span><span class="p">:</span> <span class="n">olcSuffix</span>
<span class="n">olcSuffix</span><span class="p">:</span> <span class="n">dc</span><span class="o">=</span><span class="n">example</span><span class="p">,</span><span class="n">dc</span><span class="o">=</span><span class="n">de</span>
<span class="o">-</span>
<span class="n">replace</span><span class="p">:</span> <span class="n">olcAccess</span>
<span class="n">olcAccess</span><span class="p">:</span> <span class="p">{</span><span class="mi">0</span><span class="p">}</span><span class="n">to</span> <span class="n">attrs</span><span class="o">=</span><span class="n">userPassword</span><span class="p">,</span><span class="n">shadowLastChange</span> <span class="n">by</span> <span class="n">dn</span><span class="o">=</span><span class="s2">"cn=admin,dc=example,dc=de"</span> <span class="n">write</span> <span class="n">by</span> <span class="n">anonymous</span> <span class="n">auth</span> <span class="n">by</span> <span class="bp">self</span> <span class="n">write</span> <span class="n">by</span> <span class="o">*</span> <span class="n">none</span>
<span class="n">olcAccess</span><span class="p">:</span> <span class="p">{</span><span class="mi">1</span><span class="p">}</span><span class="n">to</span> <span class="n">dn</span><span class="o">.</span><span class="n">base</span><span class="o">=</span><span class="s2">""</span> <span class="n">by</span> <span class="o">*</span> <span class="n">read</span>
<span class="n">olcAccess</span><span class="p">:</span> <span class="p">{</span><span class="mi">2</span><span class="p">}</span><span class="n">to</span> <span class="o">*</span> <span class="n">by</span> <span class="bp">self</span> <span class="n">write</span> <span class="n">by</span> <span class="n">dn</span><span class="o">=</span><span class="s2">"cn=admin,dc=example,dc=de"</span> <span class="n">write</span> <span class="n">by</span> <span class="o">*</span> <span class="n">read</span>
<span class="o">-</span>
<span class="n">replace</span><span class="p">:</span> <span class="n">olcRootDN</span>
<span class="n">olcRootDN</span><span class="p">:</span> <span class="n">cn</span><span class="o">=</span><span class="n">admin</span><span class="p">,</span><span class="n">dc</span><span class="o">=</span><span class="n">example</span><span class="p">,</span><span class="n">dc</span><span class="o">=</span><span class="n">de</span>
<span class="o">-</span>
<span class="n">replace</span><span class="p">:</span> <span class="n">olcRootPW</span>
<span class="n">olcRootPW</span><span class="p">:</span> <span class="p">{</span><span class="n">SSHA</span><span class="p">}</span><span class="mi">4</span><span class="n">RHgrU6ghLqA21CNI8biQblHtEodToyd</span>
</code></pre></div>
<p>TLS config</p>
<div class="highlight"><pre><span></span><code><span class="n">dn</span><span class="o">:</span><span class="w"> </span><span class="n">cn</span><span class="o">=</span><span class="n">config</span>
<span class="n">changetype</span><span class="o">:</span><span class="w"> </span><span class="n">modify</span>
<span class="n">add</span><span class="o">:</span><span class="w"> </span><span class="n">olcTLSCipherSuite</span>
<span class="n">olcTLSCipherSuite</span><span class="o">:</span><span class="w"> </span><span class="n">AES128</span><span class="o">+</span><span class="n">EECDH</span><span class="o">:</span><span class="n">AES128</span><span class="o">+</span><span class="n">EDH</span>
<span class="o">-</span>
<span class="n">add</span><span class="o">:</span><span class="w"> </span><span class="n">olcTLSCACertificateFile</span>
<span class="n">olcTLSCACertificateFile</span><span class="o">:</span><span class="w"> </span><span class="sr">/etc/ssl/</span><span class="n">ca</span><span class="o">.</span><span class="na">crt</span>
<span class="o">-</span>
<span class="n">add</span><span class="o">:</span><span class="w"> </span><span class="n">olcTLSCertificateFile</span>
<span class="n">olcTLSCertificateFile</span><span class="o">:</span><span class="w"> </span><span class="sr">/etc/ssl/</span><span class="n">cert</span><span class="o">.</span><span class="na">crt</span>
<span class="o">-</span>
<span class="n">add</span><span class="o">:</span><span class="w"> </span><span class="n">olcTLSCertificateKeyFile</span>
<span class="n">olcTLSCertificateKeyFile</span><span class="o">:</span><span class="w"> </span><span class="sr">/etc/ssl/</span><span class="n">keyfile</span><span class="o">.</span><span class="na">key</span>
<span class="o">-</span>
<span class="n">add</span><span class="o">:</span><span class="w"> </span><span class="n">olcTLSVerifyClient</span>
<span class="err">#</span><span class="w"> </span><span class="n">never</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">allow</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="k">try</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">demand</span>
<span class="n">olcTLSVerifyClient</span><span class="o">:</span><span class="w"> </span><span class="n">demand</span>
</code></pre></div>
<p>Refs<br>
<a href="http://www.zytrax.com/books/ldap/ch6/#tls-overview">openldap - tls config</a><br>
<a href="http://www.zytrax.com/books/ldap/ch6/#access">openldap - access</a></p>Monitoring a fritzbox via upnp - FritzOS 6.20 // FritzBox 74902015-02-11T12:24:00+01:002015-02-11T12:24:00+01:00rmicheltag:blog.devnu11.net,2015-02-11:/2015/02/monitoring-a-fritzbox-via-upnp-fritzos-6-20-fritzbox-7490.html<div class="highlight"><pre><span></span><code>curl<span class="w"> </span><span class="s2">"http://fritz.box:49000/igdupnp/control/WANCommonIFC1"</span><span class="w"> </span>-H<span class="w"> </span><span class="s2">"Content-Type: text/xml; charset="</span>utf-8<span class="s2">""</span><span class="w"> </span>-H<span class="w"> </span><span class="s2">"SoapAction:urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1#GetAddonInfos"</span><span class="w"> </span><span class="nv">sion</span><span class="o">=</span><span class="s1">'1.0'</span><span class="w"> </span><span class="nv">encoding</span><span class="o">=</span><span class="s1">'utf-8'</span>?><span class="w"> </span><s:Envelope<span class="w"> </span>s:encodingStyle<span class="o">=</span><span class="s1">'http://schemas.xmlsoap.org/soap/encoding/'</span><span class="w"> </span>xmlns:s<span class="o">=</span><span class="s1">'http://schemas.xmlsoap.org/soap/envelope/'</span>><span class="w"> </span><s:Body><span class="w"> </span><u:GetAddonInfos<span class="w"> </span>xmlns …</code></pre></div><div class="highlight"><pre><span></span><code>curl<span class="w"> </span><span class="s2">"http://fritz.box:49000/igdupnp/control/WANCommonIFC1"</span><span class="w"> </span>-H<span class="w"> </span><span class="s2">"Content-Type: text/xml; charset="</span>utf-8<span class="s2">""</span><span class="w"> </span>-H<span class="w"> </span><span class="s2">"SoapAction:urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1#GetAddonInfos"</span><span class="w"> </span><span class="nv">sion</span><span class="o">=</span><span class="s1">'1.0'</span><span class="w"> </span><span class="nv">encoding</span><span class="o">=</span><span class="s1">'utf-8'</span>?><span class="w"> </span><s:Envelope<span class="w"> </span>s:encodingStyle<span class="o">=</span><span class="s1">'http://schemas.xmlsoap.org/soap/encoding/'</span><span class="w"> </span>xmlns:s<span class="o">=</span><span class="s1">'http://schemas.xmlsoap.org/soap/envelope/'</span>><span class="w"> </span><s:Body><span class="w"> </span><u:GetAddonInfos<span class="w"> </span>xmlns:u<span class="o">=</span><span class="s1">'urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1'</span><span class="w"> </span>/><span class="w"> </span></s:Body><span class="w"> </span></s:Envelope><span class="s2">"</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="cp"><?xml version="1.0" encoding="utf-8"?></span>
<span class="nt"><s:Envelope</span><span class="w"> </span><span class="na">xmlns:s=</span><span class="s">"http://schemas.xmlsoap.org/soap/envelope/"</span><span class="w"> </span><span class="na">s:encodingStyle=</span><span class="s">"http://schemas.xmlsoap.org/soap/encoding/"</span><span class="nt">></span>
<span class="nt"><s:Body></span>
<span class="nt"><u:GetAddonInfosResponse</span><span class="w"> </span><span class="na">xmlns:u=</span><span class="s">"urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1"</span><span class="nt">></span>
<span class="nt"><NewByteSendRate></span>0<span class="nt"></NewByteSendRate></span>
<span class="nt"><NewByteReceiveRate></span>0<span class="nt"></NewByteReceiveRate></span>
<span class="nt"><NewPacketSendRate></span>0<span class="nt"></NewPacketSendRate></span>
<span class="nt"><NewPacketReceiveRate></span>0<span class="nt"></NewPacketReceiveRate></span>
<span class="nt"><NewTotalBytesSent></span>270290911<span class="nt"></NewTotalBytesSent></span>
<span class="nt"><NewTotalBytesReceived></span>1577019202<span class="nt"></NewTotalBytesReceived></span>
<span class="nt"><NewAutoDisconnectTime></span>0<span class="nt"></NewAutoDisconnectTime></span>
<span class="nt"><NewIdleDisconnectTime></span>1<span class="nt"></NewIdleDisconnectTime></span>
<span class="nt"><NewDNSServer1></span>81.xxx.xxx.xxx<span class="nt"></NewDNSServer1></span>
<span class="nt"><NewDNSServer2></span>81.xxx.xxx.xxx<span class="nt"></NewDNSServer2></span>
<span class="nt"><NewVoipDNSServer1></span>81.xxx.xxx.xxx<span class="nt"></NewVoipDNSServer1></span>
<span class="nt"><NewVoipDNSServer2></span>81.xxx.xxx.xxx<span class="nt"></NewVoipDNSServer2></span>
<span class="nt"><NewUpnpControlEnabled></span>0<span class="nt"></NewUpnpControlEnabled></span>
<span class="nt"><NewRoutedBridgedModeBoth></span>0<span class="nt"></NewRoutedBridgedModeBoth></span>
<span class="nt"></u:GetAddonInfosResponse></span>
<span class="nt"></s:Body></span>
<span class="nt"></s:Envelope></span>
</code></pre></div>
<div class="highlight"><pre><span></span><code>curl<span class="w"> </span><span class="s2">"http://fritz.box:49000/igdupnp/control/WANIPConn1"</span><span class="w"> </span>-H<span class="w"> </span><span class="s2">"Content-Type: text/xml; charset="</span>utf-8<span class="s2">""</span><span class="w"> </span>-H<span class="w"> </span><span class="s2">"SoapAction:urn:schemas-upnp-org:service:WANIPConnection:1#GetExternalIPAddress"</span><span class="w"> </span>-d<span class="w"> </span><span class="s2">"<?xml version='1.0' encoding='utf-8'?> <s:Envelope s:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <u:GetExternalIPAddress xmlns:u='urn:schemas-upnp-org:service:WANIPConnection:1' /> </s:Body> </s:Envelope>"</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="cp"><?xml version="1.0" encoding="utf-8"?></span>
<span class="nt"><s:Envelope</span><span class="w"> </span><span class="na">xmlns:s=</span><span class="s">"http://schemas.xmlsoap.org/soap/envelope/"</span><span class="w"> </span><span class="na">s:encodingStyle=</span><span class="s">"http://schemas.xmlsoap.org/soap/encoding/"</span><span class="nt">></span>
<span class="nt"><s:Body></span>
<span class="nt"><u:GetExternalIPAddressResponse</span><span class="w"> </span><span class="na">xmlns:u=</span><span class="s">"urn:schemas-upnp-org:service:WANIPConnection:1"</span><span class="nt">></span>
<span class="nt"><NewExternalIPAddress></span>xxx.xxx.xxx.xxx<span class="nt"></NewExternalIPAddress></span>
<span class="nt"></u:GetExternalIPAddressResponse></span>
<span class="nt"></s:Body></span>
<span class="nt"></s:Envelope></span>
</code></pre></div>
<div class="highlight"><pre><span></span><code>curl<span class="w"> </span><span class="s2">"http://fritz.box:49000/igdupnp/control/WANCommonIFC1"</span><span class="w"> </span>-H<span class="w"> </span><span class="s2">"Content-Type: text/xml; charset="</span>utf-8<span class="s2">""</span><span class="w"> </span>-H<span class="w"> </span><span class="s2">"SoapAction:urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1#GetCommonLinkProperties"</span><span class="w"> </span>-d<span class="w"> </span><span class="s2">"<?xml version='1.0' encoding='utf-8'?> <s:Envelope s:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <u:GetCommonLinkProperties xmlns:u='urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1' /> </s:Body> </s:Envelope>"</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="cp"><?xml version="1.0" encoding="utf-8"?></span>
<span class="nt"><s:Envelope</span><span class="w"> </span><span class="na">xmlns:s=</span><span class="s">"http://schemas.xmlsoap.org/soap/envelope/"</span><span class="w"> </span><span class="na">s:encodingStyle=</span><span class="s">"http://schemas.xmlsoap.org/soap/encoding/"</span><span class="nt">></span>
<span class="nt"><s:Body></span>
<span class="nt"><u:GetCommonLinkPropertiesResponse</span><span class="w"> </span><span class="na">xmlns:u=</span><span class="s">"urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1"</span><span class="nt">></span>
<span class="nt"><NewWANAccessType></span>DSL<span class="nt"></NewWANAccessType></span>
<span class="nt"><NewLayer1UpstreamMaxBitRate></span>11964000<span class="nt"></NewLayer1UpstreamMaxBitRate></span>
<span class="nt"><NewLayer1DownstreamMaxBitRate></span>100014000<span class="nt"></NewLayer1DownstreamMaxBitRate></span>
<span class="nt"><NewPhysicalLinkStatus></span>Up<span class="nt"></NewPhysicalLinkStatus></span>
<span class="nt"></u:GetCommonLinkPropertiesResponse></span>
<span class="nt"></s:Body></span>
<span class="nt"></s:Envelope></span>
</code></pre></div>apache and tomcat - packetsize per request2015-01-05T10:38:00+01:002015-01-05T10:38:00+01:00rmicheltag:blog.devnu11.net,2015-01-05:/2015/01/apache-and-tomcat-packetsize-per-request.html<p>During a consulting project i had some trouble with the following environment</p>
<h3>Infrastructure</h3>
<p><code>Loadbalancer >> Apache >> Tomcat / JBoss</code></p>
<p>Each request ended in a <strong>400 Bad Request</strong> but the configuration looks good and works fine with other projects.</p>
<p>In the end we made some configuration modifications to the apache and tomcat.</p>
<h3>Configuration …</h3><p>During a consulting project i had some trouble with the following environment</p>
<h3>Infrastructure</h3>
<p><code>Loadbalancer >> Apache >> Tomcat / JBoss</code></p>
<p>Each request ended in a <strong>400 Bad Request</strong> but the configuration looks good and works fine with other projects.</p>
<p>In the end we made some configuration modifications to the apache and tomcat.</p>
<h3>Configuration</h3>
<p><strong>Apache</strong></p>
<div class="highlight"><pre><span></span><code>LimitRequestFieldSize 16384
ProxyIOBufferSize 16384
</code></pre></div>
<p><strong>Tomcat</strong></p>
<div class="highlight"><pre><span></span><code><span class="o"><!--</span><span class="w"> </span><span class="nf">Define</span><span class="w"> </span><span class="n">an</span><span class="w"> </span><span class="n">AJP</span><span class="w"> </span><span class="mf">1.3</span><span class="w"> </span><span class="n">Connector</span><span class="w"> </span><span class="n">on</span><span class="w"> </span><span class="n">port</span><span class="w"> </span><span class="mi">8009</span><span class="w"> </span><span class="o">--></span>
<span class="o"><</span><span class="n">Connector</span><span class="w"> </span><span class="n">address</span><span class="o">=</span><span class="s">"10.a.b.c"</span><span class="w"> </span><span class="n">port</span><span class="o">=</span><span class="s">"8009"</span><span class="w"> </span><span class="n">protocol</span><span class="o">=</span><span class="s">"AJP/1.3"</span><span class="w"> </span><span class="n">redirectPort</span><span class="o">=</span><span class="s">"8443"</span><span class="w"> </span><span class="n">packetSize</span><span class="o">=</span><span class="s">"16384"</span><span class="w"> </span><span class="o">/></span>
</code></pre></div>
<h3>Refs</h3>
<p><a href="http://tomcat.apache.org/tomcat-5.5-doc/config/ajp.html">Tomcat AJP Docu</a><br>
<a href="http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxyiobuffersize">Apache 2.2 mod_proxy</a></p>systemd - abstract2014-08-13T21:36:00+02:002014-08-13T21:36:00+02:00rmicheltag:blog.devnu11.net,2014-08-13:/2014/08/systemd-abstract.html<p><strong>Rescue Mode</strong></p>
<p><code>cmdline=...systemd.unit=rescue.target</code></p>
<p><strong>Analyzing the boot process</strong></p>
<div class="highlight"><pre><span></span><code>systemd-analyze<span class="w"> </span>
systemd-analyze<span class="w"> </span>blame<span class="w"> </span>
systemd-analyze<span class="w"> </span>plot<span class="w"> </span>><span class="w"> </span>/tmp/plot.svg
</code></pre></div>
<p><strong>Start/Stop/Disable services</strong></p>
<div class="highlight"><pre><span></span><code><span class="n">systemctl</span><span class="w"> </span><span class="k">start</span><span class="o">/</span><span class="n">stop</span><span class="o">/</span><span class="n">restart</span><span class="o">/</span><span class="n">mask</span><span class="w"> </span><span class="o">[</span><span class="n">service</span><span class="o">]</span><span class="w"> </span>
<span class="n">systemctl</span><span class="w"> </span><span class="n">daemon</span><span class="o">-</span><span class="n">reload</span><span class="w"> </span>
<span class="n">systemctl</span><span class="w"> </span><span class="n">list</span><span class="o">-</span><span class="n">units</span><span class="w"> </span><span class="c1">--type=[timer,service,target,mounts,...]</span>
</code></pre></div>
<p><strong>Journal</strong></p>
<div class="highlight"><pre><span></span><code>journalctl -u ssh
\_PID=1
-b
</code></pre></div>
<p><strong>Custom unit</strong></p>
<p><a href="http://www.freedesktop.org/software/systemd/man/systemd.unit.html">http …</a></p><p><strong>Rescue Mode</strong></p>
<p><code>cmdline=...systemd.unit=rescue.target</code></p>
<p><strong>Analyzing the boot process</strong></p>
<div class="highlight"><pre><span></span><code>systemd-analyze<span class="w"> </span>
systemd-analyze<span class="w"> </span>blame<span class="w"> </span>
systemd-analyze<span class="w"> </span>plot<span class="w"> </span>><span class="w"> </span>/tmp/plot.svg
</code></pre></div>
<p><strong>Start/Stop/Disable services</strong></p>
<div class="highlight"><pre><span></span><code><span class="n">systemctl</span><span class="w"> </span><span class="k">start</span><span class="o">/</span><span class="n">stop</span><span class="o">/</span><span class="n">restart</span><span class="o">/</span><span class="n">mask</span><span class="w"> </span><span class="o">[</span><span class="n">service</span><span class="o">]</span><span class="w"> </span>
<span class="n">systemctl</span><span class="w"> </span><span class="n">daemon</span><span class="o">-</span><span class="n">reload</span><span class="w"> </span>
<span class="n">systemctl</span><span class="w"> </span><span class="n">list</span><span class="o">-</span><span class="n">units</span><span class="w"> </span><span class="c1">--type=[timer,service,target,mounts,...]</span>
</code></pre></div>
<p><strong>Journal</strong></p>
<div class="highlight"><pre><span></span><code>journalctl -u ssh
\_PID=1
-b
</code></pre></div>
<p><strong>Custom unit</strong></p>
<p><a href="http://www.freedesktop.org/software/systemd/man/systemd.unit.html">http://www.freedesktop.org/software/systemd/man/systemd.unit.html</a></p>Retrieve Windows key from ACPI MSDM table2014-06-19T07:56:00+02:002014-06-19T07:56:00+02:00rmicheltag:blog.devnu11.net,2014-06-19:/2014/06/retrieve-windows-key-from-acpi-msdm-table.html<div class="highlight"><pre><span></span><code><span class="o">[</span>root@localhost<span class="w"> </span>~<span class="o">]</span><span class="c1"># hexdump -C /sys/firmware/acpi/tables/MSDM</span>
<span class="m">00000000</span><span class="w"> </span>4d<span class="w"> </span><span class="m">53</span><span class="w"> </span><span class="m">44</span><span class="w"> </span>4d<span class="w"> </span><span class="m">55</span><span class="w"> </span><span class="m">00</span><span class="w"> </span><span class="m">00</span><span class="w"> </span><span class="m">00</span><span class="w"> </span><span class="m">03</span><span class="w"> </span>d3<span class="w"> </span>4c<span class="w"> </span><span class="m">45</span><span class="w"> </span>4e<span class="w"> </span>4f<span class="w"> </span><span class="m">56</span><span class="w"> </span>4f<span class="w"> </span><span class="p">|</span>MSDMU.....LENOVO<span class="p">|</span>
<span class="m">00000010</span><span class="w"> </span><span class="m">54</span><span class="w"> </span><span class="m">50</span><span class="w"> </span>2d<span class="w"> </span><span class="m">47</span><span class="w"> </span><span class="m">32</span><span class="w"> </span><span class="m">20</span><span class="w"> </span><span class="m">20</span><span class="w"> </span><span class="m">20</span><span class="w"> </span><span class="m">70</span><span class="w"> </span><span class="m">25</span><span class="w"> </span><span class="m">00</span><span class="w"> </span><span class="m">00</span><span class="w"> </span><span class="m">50</span><span class="w"> </span><span class="m">54</span><span class="w"> </span>4c<span class="w"> </span><span class="m">20</span><span class="w"> </span><span class="p">|</span>TP-G2<span class="w"> </span>p%..PTL<span class="w"> </span><span class="p">|</span>
<span class="m">00000020</span><span class="w"> </span><span class="m">02 …</span></code></pre></div><div class="highlight"><pre><span></span><code><span class="o">[</span>root@localhost<span class="w"> </span>~<span class="o">]</span><span class="c1"># hexdump -C /sys/firmware/acpi/tables/MSDM</span>
<span class="m">00000000</span><span class="w"> </span>4d<span class="w"> </span><span class="m">53</span><span class="w"> </span><span class="m">44</span><span class="w"> </span>4d<span class="w"> </span><span class="m">55</span><span class="w"> </span><span class="m">00</span><span class="w"> </span><span class="m">00</span><span class="w"> </span><span class="m">00</span><span class="w"> </span><span class="m">03</span><span class="w"> </span>d3<span class="w"> </span>4c<span class="w"> </span><span class="m">45</span><span class="w"> </span>4e<span class="w"> </span>4f<span class="w"> </span><span class="m">56</span><span class="w"> </span>4f<span class="w"> </span><span class="p">|</span>MSDMU.....LENOVO<span class="p">|</span>
<span class="m">00000010</span><span class="w"> </span><span class="m">54</span><span class="w"> </span><span class="m">50</span><span class="w"> </span>2d<span class="w"> </span><span class="m">47</span><span class="w"> </span><span class="m">32</span><span class="w"> </span><span class="m">20</span><span class="w"> </span><span class="m">20</span><span class="w"> </span><span class="m">20</span><span class="w"> </span><span class="m">70</span><span class="w"> </span><span class="m">25</span><span class="w"> </span><span class="m">00</span><span class="w"> </span><span class="m">00</span><span class="w"> </span><span class="m">50</span><span class="w"> </span><span class="m">54</span><span class="w"> </span>4c<span class="w"> </span><span class="m">20</span><span class="w"> </span><span class="p">|</span>TP-G2<span class="w"> </span>p%..PTL<span class="w"> </span><span class="p">|</span>
<span class="m">00000020</span><span class="w"> </span><span class="m">02</span><span class="w"> </span><span class="m">00</span><span class="w"> </span><span class="m">00</span><span class="w"> </span><span class="m">00</span><span class="w"> </span><span class="m">01</span><span class="w"> </span><span class="m">00</span><span class="w"> </span><span class="m">00</span><span class="w"> </span><span class="m">00</span><span class="w"> </span><span class="m">00</span><span class="w"> </span><span class="m">00</span><span class="w"> </span><span class="m">00</span><span class="w"> </span><span class="m">00</span><span class="w"> </span><span class="m">01</span><span class="w"> </span><span class="m">00</span><span class="w"> </span><span class="m">00</span><span class="w"> </span><span class="m">00</span><span class="w"> </span><span class="p">|</span>................<span class="p">|</span>
<span class="m">00000030</span><span class="w"> </span><span class="m">00</span><span class="w"> </span><span class="m">00</span><span class="w"> </span><span class="m">00</span><span class="w"> </span><span class="m">00</span><span class="w"> </span>1d<span class="w"> </span><span class="m">00</span><span class="w"> </span><span class="m">00</span><span class="w"> </span><span class="m">00</span><span class="w"> </span>XX<span class="w"> </span>XX<span class="w"> </span>XX<span class="w"> </span>XX<span class="w"> </span>XX<span class="w"> </span>XX<span class="w"> </span>XX<span class="w"> </span>XX<span class="w"> </span><span class="p">|</span>........xxxxx-xx<span class="p">|</span>
<span class="m">00000040</span><span class="w"> </span>XX<span class="w"> </span>XX<span class="w"> </span>XX<span class="w"> </span>XX<span class="w"> </span>XX<span class="w"> </span>XX<span class="w"> </span>XX<span class="w"> </span>XX<span class="w"> </span>XX<span class="w"> </span>XX<span class="w"> </span>XX<span class="w"> </span>XX<span class="w"> </span>XX<span class="w"> </span>XX<span class="w"> </span>XX<span class="w"> </span>XX<span class="w"> </span><span class="p">|</span>xxx-xxxxx-xxxxx-<span class="p">|</span>
<span class="m">00000050</span><span class="w"> </span>XX<span class="w"> </span>XX<span class="w"> </span>XX<span class="w"> </span>XX<span class="w"> </span>XX<span class="w"> </span><span class="p">|</span>xxxxx<span class="p">|</span>
<span class="m">00000055</span>
</code></pre></div>
<p><code>cat /sys/firmware/acpi/tables/MSDM | dd bs=1 skip=56 2>/dev/null</code></p>
<p>Ahh yes...and thanks to everyone how post a howto with screenshots with black bars - don't forget the hexdump ;)</p>Syncing a fork with git/github2014-06-16T07:48:00+02:002014-06-16T07:48:00+02:00rmicheltag:blog.devnu11.net,2014-06-16:/2014/06/syncing-a-fork-with-gitgithub.html<h3>Configure a remote</h3>
<div class="highlight"><pre><span></span><code>git<span class="w"> </span>remove<span class="w"> </span>-v
<span class="c1"># git remote add </span>
git<span class="w"> </span>remote<span class="w"> </span>add<span class="w"> </span>upstream<span class="w"> </span>https://github.com/foo/bar.git
git<span class="w"> </span>remove<span class="w"> </span>-v
</code></pre></div>
<h3>Pull "upstream"</h3>
<div class="highlight"><pre><span></span><code><span class="c1"># git fetch </span>
git<span class="w"> </span>fetch<span class="w"> </span>upstream
</code></pre></div>
<h3>Checkout the master</h3>
<div class="highlight"><pre><span></span><code>git<span class="w"> </span>checkout<span class="w"> </span>master
</code></pre></div>
<h3>Merge "upstream" master to local master</h3>
<div class="highlight"><pre><span></span><code><span class="c1"># git merge /</span>
git<span class="w"> </span>merge<span class="w"> </span>upstream/master
</code></pre></div>
<h3>(optional) Delete old …</h3><h3>Configure a remote</h3>
<div class="highlight"><pre><span></span><code>git<span class="w"> </span>remove<span class="w"> </span>-v
<span class="c1"># git remote add </span>
git<span class="w"> </span>remote<span class="w"> </span>add<span class="w"> </span>upstream<span class="w"> </span>https://github.com/foo/bar.git
git<span class="w"> </span>remove<span class="w"> </span>-v
</code></pre></div>
<h3>Pull "upstream"</h3>
<div class="highlight"><pre><span></span><code><span class="c1"># git fetch </span>
git<span class="w"> </span>fetch<span class="w"> </span>upstream
</code></pre></div>
<h3>Checkout the master</h3>
<div class="highlight"><pre><span></span><code>git<span class="w"> </span>checkout<span class="w"> </span>master
</code></pre></div>
<h3>Merge "upstream" master to local master</h3>
<div class="highlight"><pre><span></span><code><span class="c1"># git merge /</span>
git<span class="w"> </span>merge<span class="w"> </span>upstream/master
</code></pre></div>
<h3>(optional) Delete old branch</h3>
<div class="highlight"><pre><span></span><code><span class="c1"># git push origin :</span>
git<span class="w"> </span>push<span class="w"> </span>origin<span class="w"> </span>:foobar
git<span class="w"> </span>branch<span class="w"> </span>-d<span class="w"> </span>foobar
</code></pre></div>
<p>Refs https://help.github.com/articles/</p>OS X Mavericks and MacPorts2014-03-22T00:31:00+01:002014-03-22T00:31:00+01:00rmicheltag:blog.devnu11.net,2014-03-22:/2014/03/os-x-mavericks-and-macports.html<p>A few weeks ago i upgraded to Mavericks (10.9)...so far, so good.</p>
<p>But i had some trouble with my MacPorts installation...</p>
<div class="highlight"><pre><span></span><code>:info:configure<span class="w"> </span>CMake<span class="w"> </span>Error<span class="w"> </span>at<span class="w"> </span>Modules/Platform/Darwin.cmake:211<span class="w"> </span><span class="o">(</span>message<span class="o">)</span>:
:info:configure<span class="w"> </span>CMAKE_OSX_DEPLOYMENT_TARGET<span class="w"> </span>is<span class="w"> </span><span class="s1">'10.9'</span><span class="w"> </span>but<span class="w"> </span>CMAKE_OSX_SYSROOT:
:info:configure<span class="w"> </span>
:info:configure<span class="w"> </span><span class="s2">""</span>
:info:configure<span class="w"> </span>
:info:configure …</code></pre></div><p>A few weeks ago i upgraded to Mavericks (10.9)...so far, so good.</p>
<p>But i had some trouble with my MacPorts installation...</p>
<div class="highlight"><pre><span></span><code>:info:configure<span class="w"> </span>CMake<span class="w"> </span>Error<span class="w"> </span>at<span class="w"> </span>Modules/Platform/Darwin.cmake:211<span class="w"> </span><span class="o">(</span>message<span class="o">)</span>:
:info:configure<span class="w"> </span>CMAKE_OSX_DEPLOYMENT_TARGET<span class="w"> </span>is<span class="w"> </span><span class="s1">'10.9'</span><span class="w"> </span>but<span class="w"> </span>CMAKE_OSX_SYSROOT:
:info:configure<span class="w"> </span>
:info:configure<span class="w"> </span><span class="s2">""</span>
:info:configure<span class="w"> </span>
:info:configure<span class="w"> </span>is<span class="w"> </span>not<span class="w"> </span><span class="nb">set</span><span class="w"> </span>to<span class="w"> </span>a<span class="w"> </span>MacOSX<span class="w"> </span>SDK<span class="w"> </span>with<span class="w"> </span>a<span class="w"> </span>recognized<span class="w"> </span>version.<span class="w"> </span>Either<span class="w"> </span><span class="nb">set</span>
:info:configure<span class="w"> </span>CMAKE_OSX_SYSROOT<span class="w"> </span>to<span class="w"> </span>a<span class="w"> </span>valid<span class="w"> </span>SDK<span class="w"> </span>or<span class="w"> </span><span class="nb">set</span><span class="w"> </span>CMAKE_OSX_DEPLOYMENT_TARGET<span class="w"> </span>to
:info:configure<span class="w"> </span>empty.
</code></pre></div>
<p>On <a href="https://trac.macports.org">https://trac.macports.org</a> was this problem already reported but without any solutions that worked for me. So i did my own research and i ended up with a really dirty workaround.</p>
<p>Create a list of all installed ports (incl. variants)</p>
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>port<span class="w"> </span>-qv<span class="w"> </span>installed
</code></pre></div>
<p>Uninstall <strong>all</strong> ports</p>
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>port<span class="w"> </span>-f<span class="w"> </span>uninstall<span class="w"> </span>installed
</code></pre></div>
<p>Clean any builds</p>
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>port<span class="w"> </span>clean<span class="w"> </span>all
</code></pre></div>
<p>Reinstall all necessary ports</p>
<div class="highlight"><pre><span></span><code>port<span class="w"> </span>install<span class="w"> </span>+variant1
</code></pre></div>
<p>Yeah...it's not the best... i know!</p>[notepad] curl & SOAP2014-01-28T10:29:00+01:002014-01-28T10:29:00+01:00rmicheltag:blog.devnu11.net,2014-01-28:/2014/01/notepad-curl-soap.html<div class="highlight"><pre><span></span><code>curl<span class="w"> </span>-H<span class="w"> </span><span class="s2">"Content-Type: text/xml; charset=utf-8"</span><span class="w"> </span>-H<span class="w"> </span><span class="s2">"SOAPAction:"</span><span class="w"> </span>-d<span class="w"> </span>@data.txt<span class="w"> </span>-w<span class="w"> </span><span class="s2">"%{http_code}\n"</span><span class="w"> </span>-s<span class="w"> </span>-o<span class="w"> </span>/dev/null<span class="w"> </span>-X<span class="w"> </span>POST<span class="w"> </span>
</code></pre></div>Choosing the right scheduler on a virtual maschine (kvm)2013-08-20T09:36:00+02:002013-08-20T09:36:00+02:00rmicheltag:blog.devnu11.net,2013-08-20:/2013/08/choosing-the-right-scheduler-on-a-virtual-maschine-kvm.html<p>The default i/o scheduler is the Completely Fair Queuing (<strong>cfq</strong>) in the 2.6 kernel. This is not the first choice for a virtual machine/hypervisor. The combination of the <strong>noop</strong> and the <strong>deadline</strong> scheduler is much better for a virtualization host.</p>
<p>virtual machine: <strong>noop</strong><br>
hypervisor: <strong>deadline</strong></p>
<p><strong>Set the …</strong></p><p>The default i/o scheduler is the Completely Fair Queuing (<strong>cfq</strong>) in the 2.6 kernel. This is not the first choice for a virtual machine/hypervisor. The combination of the <strong>noop</strong> and the <strong>deadline</strong> scheduler is much better for a virtualization host.</p>
<p>virtual machine: <strong>noop</strong><br>
hypervisor: <strong>deadline</strong></p>
<p><strong>Set the scheduler temporarily (vm)</strong></p>
<p><code>$ echo noop > /sys/block/sda/queue/scheduler</code></p>
<p><strong>Set the scheduler permanently (vm)</strong></p>
<p>/boot/grub/menu.lst:<br>
<code>kernel /vmlinuz-3.8.11 root=/dev/vgsystem/lvroot elevator=noop</code></p>
<p>(For the hypervisor replace noop with deadline!)</p>
<p>And don't forget to use virtio & raw devices for guest and noatime & nodiratime in fstab wherever it's possible.</p>
<p>Hint: VMware also recommends the noop scheduler for the guests.</p>[notepad] vmbuilder command2013-08-13T14:50:00+02:002013-08-13T14:50:00+02:00rmicheltag:blog.devnu11.net,2013-08-13:/2013/08/notepad-vmbuilder-command.html<div class="highlight"><pre><span></span><code>vmbuilder<span class="w"> </span>kvm<span class="w"> </span>ubuntu<span class="w"> </span>-a<span class="w"> </span>amd64<span class="w"> </span>--suite<span class="o">=</span>precise<span class="w"> </span>--cpu<span class="o">=</span><span class="m">2</span><span class="w"> </span>--libvirt<span class="w"> </span>qemu:///system<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>--mem<span class="o">=</span><span class="m">2048</span><span class="w"> </span>--user<span class="o">=</span>root<span class="w"> </span>--pass<span class="o">=</span>random<span class="w"> </span>--hostname<span class="o">=</span>testsystem<span class="w"> </span>--dest<span class="o">=</span>/tmp/test<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>--raw<span class="o">=</span>/dev/vgdata1/test_root<span class="w"> </span>--rootsize<span class="o">=</span><span class="m">16384</span><span class="w"> </span>--swapsize<span class="o">=</span><span class="m">2048</span><span class="w"> </span>--addpkg<span class="o">=</span>openssh-server<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>--bridge<span class="o">=</span>virbr0<span class="w"> </span>--ip<span class="o">=</span><span class="m">192</span>.168.122.110<span class="w"> </span>--mask<span class="o">=</span><span class="m">255</span>.255.255.0<span class="w"> </span>--gw<span class="o">=</span><span class="m">192</span>.168.122.1 …</code></pre></div><div class="highlight"><pre><span></span><code>vmbuilder<span class="w"> </span>kvm<span class="w"> </span>ubuntu<span class="w"> </span>-a<span class="w"> </span>amd64<span class="w"> </span>--suite<span class="o">=</span>precise<span class="w"> </span>--cpu<span class="o">=</span><span class="m">2</span><span class="w"> </span>--libvirt<span class="w"> </span>qemu:///system<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>--mem<span class="o">=</span><span class="m">2048</span><span class="w"> </span>--user<span class="o">=</span>root<span class="w"> </span>--pass<span class="o">=</span>random<span class="w"> </span>--hostname<span class="o">=</span>testsystem<span class="w"> </span>--dest<span class="o">=</span>/tmp/test<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>--raw<span class="o">=</span>/dev/vgdata1/test_root<span class="w"> </span>--rootsize<span class="o">=</span><span class="m">16384</span><span class="w"> </span>--swapsize<span class="o">=</span><span class="m">2048</span><span class="w"> </span>--addpkg<span class="o">=</span>openssh-server<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>--bridge<span class="o">=</span>virbr0<span class="w"> </span>--ip<span class="o">=</span><span class="m">192</span>.168.122.110<span class="w"> </span>--mask<span class="o">=</span><span class="m">255</span>.255.255.0<span class="w"> </span>--gw<span class="o">=</span><span class="m">192</span>.168.122.1<span class="w"> </span>--dns<span class="o">=</span><span class="m">192</span>.168.122.1
</code></pre></div>mutt: daily use (still in progress)2013-05-07T15:44:00+02:002013-05-07T15:44:00+02:00rmicheltag:blog.devnu11.net,2013-05-07:/2013/05/mutt-daily-use-still-in-progress.html<p><strong>Tag messages matching</strong><br>
shift-t -> "search string"</p>
<p><strong>Limit messages matching</strong> (<a href="http://www.mutt.org/doc/manual/manual-4.html#patterns">pattern</a>)<br>
l > \~T (tagged)<br>
l > \~A (all)<br>
l > \~N (new)<br>
l > \~U (unread)<br>
l > \~F (flagged)<br>
l > "search string"</p>
<p><strong>Random commands</strong><br>
;d > Delete tagged messages<br>
s > Move message<br>
;s > Move tagged messages<br>
b > Bounce messages<br>
w/W > Set/Clear Flag<br>
:source …</p><p><strong>Tag messages matching</strong><br>
shift-t -> "search string"</p>
<p><strong>Limit messages matching</strong> (<a href="http://www.mutt.org/doc/manual/manual-4.html#patterns">pattern</a>)<br>
l > \~T (tagged)<br>
l > \~A (all)<br>
l > \~N (new)<br>
l > \~U (unread)<br>
l > \~F (flagged)<br>
l > "search string"</p>
<p><strong>Random commands</strong><br>
;d > Delete tagged messages<br>
s > Move message<br>
;s > Move tagged messages<br>
b > Bounce messages<br>
w/W > Set/Clear Flag<br>
:source /path/to/muttrc > Reload mutt configuration</p>folks...thats for you: how to extract a initrd file2013-02-04T13:07:00+01:002013-02-04T13:07:00+01:00rmicheltag:blog.devnu11.net,2013-02-04:/2013/02/folksthats-for-you-how-to-extract-a-initrd-file.html<p>Tag, linux, howto, notepad
Slug: folks-thats-for-you-how-to-extract-a-initrd-file
Status: published</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>gzip<span class="w"> </span>-dc<span class="w"> </span>/boot/initrd-2.6.32.23-0.3-default<span class="w"> </span><span class="p">|</span><span class="w"> </span>cpio<span class="w"> </span>-id
</code></pre></div>Apache2 & Jenkins & SSL2012-12-15T10:27:00+01:002012-12-15T10:27:00+01:00rmicheltag:blog.devnu11.net,2012-12-15:/2012/12/apache2-jenkins-ssl.html<div class="highlight"><pre><span></span><code><span class="nv">$JAVA_HOME</span>/bin/java<span class="w"> </span>-DJENKINS_HOME<span class="o">=</span>/var/lib/jenkins<span class="w"> </span>-Xms<span class="o">=</span>512m<span class="w"> </span>-Djava.awt.headless<span class="o">=</span><span class="nb">true</span><span class="w"> </span><span class="se">\</span>
<span class="w"> </span>-server<span class="w"> </span>-jar<span class="w"> </span>/var/lib/jenkins.war<span class="w"> </span>--httpPort<span class="o">=</span><span class="m">8080</span><span class="w"> </span>--httpListenAddress<span class="o">=</span><span class="m">127</span>.0.0.1<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>--ajp13Port<span class="o">=</span>-1<span class="w"> </span>--logfile<span class="o">=</span>/var/log/jenkins.log
</code></pre></div>
<p><strong><em>apache vhost config</em></strong></p>
<div class="highlight"><pre><span></span><code><span class="w"> </span><span class="nb">ServerAdmin</span><span class="w"> </span>admin@example.com
<span class="w"> </span><span class="nb">DocumentRoot</span><span class="w"> </span><span class="s2">"/srv/www/"</span>
<span class="w"> </span><span class="nb">ServerName</span><span class="w"> </span>jenkins.example.com
<span class="w"> </span><span class="nb">SSLEngine</span><span class="w"> </span><span class="k">On</span>
<span class="w"> </span><span class="nb">SSLVerifyClient …</span></code></pre></div><div class="highlight"><pre><span></span><code><span class="nv">$JAVA_HOME</span>/bin/java<span class="w"> </span>-DJENKINS_HOME<span class="o">=</span>/var/lib/jenkins<span class="w"> </span>-Xms<span class="o">=</span>512m<span class="w"> </span>-Djava.awt.headless<span class="o">=</span><span class="nb">true</span><span class="w"> </span><span class="se">\</span>
<span class="w"> </span>-server<span class="w"> </span>-jar<span class="w"> </span>/var/lib/jenkins.war<span class="w"> </span>--httpPort<span class="o">=</span><span class="m">8080</span><span class="w"> </span>--httpListenAddress<span class="o">=</span><span class="m">127</span>.0.0.1<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>--ajp13Port<span class="o">=</span>-1<span class="w"> </span>--logfile<span class="o">=</span>/var/log/jenkins.log
</code></pre></div>
<p><strong><em>apache vhost config</em></strong></p>
<div class="highlight"><pre><span></span><code><span class="w"> </span><span class="nb">ServerAdmin</span><span class="w"> </span>admin@example.com
<span class="w"> </span><span class="nb">DocumentRoot</span><span class="w"> </span><span class="s2">"/srv/www/"</span>
<span class="w"> </span><span class="nb">ServerName</span><span class="w"> </span>jenkins.example.com
<span class="w"> </span><span class="nb">SSLEngine</span><span class="w"> </span><span class="k">On</span>
<span class="w"> </span><span class="nb">SSLVerifyClient</span><span class="w"> </span><span class="k">none</span>
<span class="w"> </span><span class="nb">SSLVerifyDepth</span><span class="w"> </span><span class="m">3</span>
<span class="w"> </span><span class="nb">SSLCertificateFile</span><span class="w"> </span><span class="sx">/etc/ssl/example.crt</span>
<span class="w"> </span><span class="nb">SSLCertificateKeyFile</span><span class="w"> </span><span class="sx">/etc/ssl/example.key</span>
<span class="w"> </span><span class="nb">ProxyRequests</span><span class="w"> </span><span class="k">Off</span>
<span class="w"> </span><span class="nb">ProxyPreserveHost</span><span class="w"> </span><span class="k">On</span>
<span class="w"> </span><span class="nb">Order</span><span class="w"> </span>deny,allow
<span class="w"> </span><span class="nb">Allow</span><span class="w"> </span>from<span class="w"> </span><span class="k">all</span>
<span class="w"> </span><span class="nb">ProxyPass</span><span class="w"> </span>/<span class="w"> </span>http://127.0.0.1:8080/
<span class="w"> </span><span class="nb">ProxyPassReverse</span><span class="w"> </span>/<span class="w"> </span>http://127.0.0.1:8080/
<span class="w"> </span><span class="nb">Order</span><span class="w"> </span>allow,deny
<span class="w"> </span><span class="nb">Allow</span><span class="w"> </span>from<span class="w"> </span><span class="k">all</span>
<span class="w"> </span><span class="nb">AuthType</span><span class="w"> </span>basic
<span class="w"> </span><span class="nb">AuthName</span><span class="w"> </span>Build
<span class="w"> </span><span class="nb">AuthUserFile</span><span class="w"> </span><span class="sx">/etc/apache2/jenkins-http.user</span>
<span class="w"> </span><span class="nb">Require</span><span class="w"> </span>vaild-user
<span class="w"> </span><span class="nb">Header</span><span class="w"> </span>edit<span class="w"> </span>Location<span class="w"> </span>^http://jenkins.server/<span class="w"> </span>https://jenkins.server/
</code></pre></div>
<p>Note: Jenkins with AJP and SSL via Apache was not working...maybe a bug?</p>Building qemu & libvirt from scratch...2012-12-04T13:22:00+01:002012-12-04T13:22:00+01:00rmicheltag:blog.devnu11.net,2012-12-04:/2012/12/building-qemu-libvirt-from-scratch.html<p><strong>Pre-requirements<br>
</strong></p>
<div class="highlight"><pre><span></span><code>git<span class="w"> </span>clone<span class="w"> </span>git://git.qemu.org/qemu.git
git<span class="w"> </span>clone<span class="w"> </span>git://github.com/sahlberg/libiscsi.git
http://libvirt.org/sources/libvirt-1.0.0.tar.gz<span class="w"> </span><span class="o">(</span><span class="m">4</span>/12/12<span class="o">)</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code>aptitude<span class="w"> </span>install<span class="w"> </span>libvdeplug2<span class="w"> </span>libvdeplug2-dev<span class="w"> </span>libaio1<span class="w"> </span>libaio-dev<span class="w"> </span>libcap-dev<span class="w"> </span>libattr1-dev<span class="w"> </span>libsdl-dev<span class="w"> </span>libxml2-dev
</code></pre></div>
<p><strong>Building</strong></p>
<p>libiscsi:</p>
<div class="highlight"><pre><span></span><code>./autogen.sh
./configure
make<span class="w"> </span><span class="o">&&</span><span class="w"> </span>make<span class="w"> </span>install
</code></pre></div>
<p>qemu:</p>
<div class="highlight"><pre><span></span><code>./configure<span class="w"> </span>--enable-kvm …</code></pre></div><p><strong>Pre-requirements<br>
</strong></p>
<div class="highlight"><pre><span></span><code>git<span class="w"> </span>clone<span class="w"> </span>git://git.qemu.org/qemu.git
git<span class="w"> </span>clone<span class="w"> </span>git://github.com/sahlberg/libiscsi.git
http://libvirt.org/sources/libvirt-1.0.0.tar.gz<span class="w"> </span><span class="o">(</span><span class="m">4</span>/12/12<span class="o">)</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code>aptitude<span class="w"> </span>install<span class="w"> </span>libvdeplug2<span class="w"> </span>libvdeplug2-dev<span class="w"> </span>libaio1<span class="w"> </span>libaio-dev<span class="w"> </span>libcap-dev<span class="w"> </span>libattr1-dev<span class="w"> </span>libsdl-dev<span class="w"> </span>libxml2-dev
</code></pre></div>
<p><strong>Building</strong></p>
<p>libiscsi:</p>
<div class="highlight"><pre><span></span><code>./autogen.sh
./configure
make<span class="w"> </span><span class="o">&&</span><span class="w"> </span>make<span class="w"> </span>install
</code></pre></div>
<p>qemu:</p>
<div class="highlight"><pre><span></span><code>./configure<span class="w"> </span>--enable-kvm<span class="w"> </span>--enable-vde<span class="w"> </span>--enable-virtfs<span class="w"> </span>--enable-linux-aio<span class="w"> </span>--enable-libiscsi<span class="w"> </span>--enable-sdl<span class="w"> </span>--target-list<span class="o">=</span>i386-softmmu,x86_64-softmmu,i386-linux-user,x86_64-linux-user<span class="w"> </span>--audio-drv-list<span class="o">=</span>alsa
make<span class="w"> </span><span class="o">&&</span><span class="w"> </span>make<span class="w"> </span>install
</code></pre></div>
<p><a href="http://libvirt.org/index.html">libvirt</a>:</p>
<p>(maybe you should build libvirt with python \< v3.2)</p>
<div class="highlight"><pre><span></span><code>./configure
<span class="o">[</span>...<span class="o">]</span>
configure:<span class="w"> </span>Drivers
configure:<span class="w"> </span>
configure:<span class="w"> </span>Xen:<span class="w"> </span>no
configure:<span class="w"> </span>QEMU:<span class="w"> </span>yes
configure:<span class="w"> </span>UML:<span class="w"> </span>yes
configure:<span class="w"> </span>OpenVZ:<span class="w"> </span>yes
configure:<span class="w"> </span>VMware:<span class="w"> </span>yes
configure:<span class="w"> </span>VBox:<span class="w"> </span>yes
configure:<span class="w"> </span>XenAPI:<span class="w"> </span>no
configure:<span class="w"> </span>xenlight:<span class="w"> </span>no
configure:<span class="w"> </span>LXC:<span class="w"> </span>yes
configure:<span class="w"> </span>PHYP:<span class="w"> </span>yes
configure:<span class="w"> </span>ESX:<span class="w"> </span>yes
configure:<span class="w"> </span>Hyper-V:<span class="w"> </span>no
configure:<span class="w"> </span>Parallels:<span class="w"> </span>yes
configure:<span class="w"> </span>Test:<span class="w"> </span>yes
configure:<span class="w"> </span>Remote:<span class="w"> </span>yes
configure:<span class="w"> </span>Network:<span class="w"> </span>yes
configure:<span class="w"> </span>Libvirtd:<span class="w"> </span>yes
configure:<span class="w"> </span>Interface:<span class="w"> </span>yes
configure:<span class="w"> </span>macvtap:<span class="w"> </span>yes
configure:<span class="w"> </span>virtport:<span class="w"> </span>yes
<span class="o">[</span>...<span class="o">]</span>
configure:<span class="w"> </span>Storage<span class="w"> </span>Drivers
configure:<span class="w"> </span>
configure:<span class="w"> </span>Dir:<span class="w"> </span>yes
configure:<span class="w"> </span>FS:<span class="w"> </span>yes
configure:<span class="w"> </span>NetFS:<span class="w"> </span>yes
configure:<span class="w"> </span>LVM:<span class="w"> </span>yes
configure:<span class="w"> </span>iSCSI:<span class="w"> </span>yes
configure:<span class="w"> </span>SCSI:<span class="w"> </span>yes
configure:<span class="w"> </span>mpath:<span class="w"> </span>yes
configure:<span class="w"> </span>Disk:<span class="w"> </span>no
configure:<span class="w"> </span>RBD:<span class="w"> </span>no
configure:<span class="w"> </span>Sheepdog:<span class="w"> </span>no
<span class="o">[</span>...<span class="o">]</span>
configure:<span class="w"> </span>Libraries
configure:<span class="w"> </span>
configure:<span class="w"> </span>libxml:<span class="w"> </span>-I/usr/include/libxml2<span class="w"> </span>-lxml2<span class="w"> </span>
configure:<span class="w"> </span>dlopen:<span class="w"> </span>-ldl
configure:<span class="w"> </span>libcurl:<span class="w"> </span>-DCURL_DISABLE_TYPECHECK<span class="w"> </span>-lcurl<span class="w"> </span>
configure:<span class="w"> </span>openwsman:<span class="w"> </span>no
configure:<span class="w"> </span>libssh2:<span class="w"> </span>-lssh2<span class="w"> </span>
configure:<span class="w"> </span>gnutls:<span class="w"> </span>-I/usr/include/p11-kit-1<span class="w"> </span>-lgnutls<span class="w"> </span>-lgcrypt
configure:<span class="w"> </span>sasl:<span class="w"> </span>-lsasl2
configure:<span class="w"> </span>yajl:<span class="w"> </span>-lyajl
configure:<span class="w"> </span>sanlock:<span class="w"> </span>no
configure:<span class="w"> </span>firewalld:<span class="w"> </span>yes
configure:<span class="w"> </span>avahi:<span class="w"> </span>no
configure:<span class="w"> </span>polkit:<span class="w"> </span>/usr/bin/pkcheck<span class="w"> </span><span class="o">(</span>version<span class="w"> </span><span class="m">1</span><span class="o">)</span>
configure:<span class="w"> </span>audit:<span class="w"> </span>no
configure:<span class="w"> </span>selinux:<span class="w"> </span>no
configure:<span class="w"> </span>apparmor:<span class="w"> </span>no
configure:<span class="w"> </span>numactl:<span class="w"> </span>no
configure:<span class="w"> </span>capng:<span class="w"> </span>-lcap-ng
configure:<span class="w"> </span>xen:<span class="w"> </span>no
configure:<span class="w"> </span>xenapi:<span class="w"> </span>no
configure:<span class="w"> </span>xenlight:<span class="w"> </span>no
configure:<span class="w"> </span>hal:<span class="w"> </span>no
configure:<span class="w"> </span>udev:<span class="w"> </span>-ludev<span class="w"> </span>-lrt<span class="w"> </span>-lpciaccess<span class="w"> </span>
configure:<span class="w"> </span>netcf:<span class="w"> </span>no
configure:<span class="w"> </span>pcap:<span class="w"> </span>-I/usr/include<span class="w"> </span>-L/usr/lib64<span class="w"> </span>-Wl,-rpath,/usr/lib64<span class="w"> </span>-lpcap
configure:<span class="w"> </span>nl:<span class="w"> </span>-I/usr/include/libnl3<span class="w"> </span>-I/usr/include/libnl3<span class="w"> </span>-lnl-3<span class="w"> </span>-lnl-route-3<span class="w"> </span>-lnl-3<span class="w"> </span>
configure:<span class="w"> </span>mscom:<span class="w"> </span>no
configure:<span class="w"> </span>xdr:<span class="w"> </span>
configure:<span class="w"> </span>rbd:<span class="w"> </span>no
<span class="o">[</span>...<span class="o">]</span>
make<span class="w"> </span><span class="o">&&</span><span class="w"> </span>make<span class="w"> </span>install
</code></pre></div>
<p>If you getting errors like this one</p>
<div class="highlight"><pre><span></span><code>make<span class="o">[</span><span class="m">3</span><span class="o">]</span>:<span class="w"> </span>Entering<span class="w"> </span>directory<span class="w"> </span><span class="sb">`</span>/home/rmichel/src/libvirt-1.0.0/python<span class="err">'</span>
<span class="w"> </span>GEN<span class="w"> </span>generator.py.stamp
<span class="w"> </span>File<span class="w"> </span><span class="s2">"./generator.py"</span>,<span class="w"> </span>line<span class="w"> </span><span class="m">21</span>
<span class="w"> </span>print<span class="w"> </span><span class="s2">"test"</span>
<span class="w"> </span>^
SyntaxError:<span class="w"> </span>invalid<span class="w"> </span>syntax
make<span class="o">[</span><span class="m">3</span><span class="o">]</span>:<span class="w"> </span>***<span class="w"> </span><span class="o">[</span>generator.py.stamp<span class="o">]</span><span class="w"> </span>Error<span class="w"> </span><span class="m">1</span>
</code></pre></div>
<p>you are using python 3.2.x (or newer) and should switch back to python 2.7.x!</p>
<p>The problem is the 'print' function. In python 2.7.x the syntax is <code>print "foobar"</code> but in 3.x that's not valid anymore! Instead you should be use <code>print("foobar")</code> (which is also valid in 2.7.x) !!</p>
<p><strong>Examples</strong></p>
<p><a href="https://github.com/sahlberg/libiscsi">libiscsi</a>:</p>
<div class="highlight"><pre><span></span><code>qemu<span class="w"> </span><span class="o">[</span>...<span class="o">]</span><span class="w"> </span>-drive<span class="w"> </span><span class="nv">file</span><span class="o">=</span>iscsi://10.1.1.1/iqn.storage.test/1,if<span class="o">=</span>scsi,bus<span class="o">=</span><span class="m">0</span>,unit<span class="o">=</span><span class="m">3</span>
</code></pre></div>
<p><a href="http://vde.sourceforge.net/">vde</a>:</p>
<div class="highlight"><pre><span></span><code>vde_switch<span class="w"> </span>-s<span class="w"> </span>/tmp/vdesock1<span class="w"> </span><span class="p">&</span>
qemu<span class="w"> </span><span class="o">[</span>...<span class="o">]</span><span class="w"> </span>-net<span class="w"> </span>nic<span class="w"> </span>-net<span class="w"> </span>vde,vlan<span class="o">=</span><span class="m">0</span>,sock<span class="o">=</span>/tmp/vdesock1
</code></pre></div>
<p>linux-aio:<br>
<a href="http://www.linux-kvm.org/page/Virtio/Block/Latency#posix-aio-compat_versus_linux-aio">"QEMU has two asynchronous I/O mechanisms: POSIX AIO emulation using a pool of worker threads and native Linux AIO."</a></p>
<div class="highlight"><pre><span></span><code>qemu<span class="w"> </span><span class="o">[</span>...<span class="o">]</span><span class="w"> </span>-drive<span class="w"> </span><span class="nv">file</span><span class="o">=</span>foo.img,aio<span class="o">=[</span>threads<span class="p">|</span>native<span class="o">]</span>
</code></pre></div>aacraid & arcconf - Create a RAID5 online2012-10-04T10:30:00+02:002012-10-04T10:30:00+02:00rmicheltag:blog.devnu11.net,2012-10-04:/2012/10/aacraid-arcconf-create-a-raid5-online.html<div class="highlight"><pre><span></span><code><span class="w"> </span><span class="o">|--</span><span class="w"> </span><span class="n">Drives</span><span class="w"> </span><span class="o">--|</span>
<span class="n">arcconf</span><span class="w"> </span><span class="n">CREATE</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="n">LOGICALDRIVE</span><span class="w"> </span><span class="n">Name</span><span class="w"> </span><span class="n">R5_3TB</span><span class="w"> </span><span class="n">Rcache</span><span class="w"> </span><span class="n">RON</span><span class="w"> </span><span class="n">Wcache</span><span class="w"> </span><span class="n">WT</span><span class="w"> </span><span class="n">MAX</span><span class="w"> </span><span class="mi">5</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="mi">5</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="mi">6</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="mi">7</span>
<span class="w"> </span><span class="n">Raid</span><span class="w"> </span><span class="n">size</span><span class="w"> </span><span class="o"><|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span>
<span class="w"> </span><span class="n">Raid</span><span class="w"> </span><span class="n">level</span><span class="w"> </span><span class="o"><|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span>
<span class="w"> </span><span class="n">Channel</span><span class="w"> </span><span class="n">ID</span><span class="w"> </span><span class="o"><|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span>
<span class="w"> </span><span class="n">Drive</span><span class="w"> </span><span class="n">ID</span><span class="w"> </span><span class="o"><|</span>
</code></pre></div>Gentoo - Jenkins startup script2012-09-19T23:24:00+02:002012-09-19T23:24:00+02:00rmicheltag:blog.devnu11.net,2012-09-19:/2012/09/gentoo-jenkins-startup-script.html<p>Not the best but its working for me...maybe <code>JENKINS_*</code> and <code>JAVA_OPTS</code> can be moved to <code>/etc/conf.d/jenkins</code> or something else.</p>
<div class="highlight"><pre><span></span><code><span class="ch">#!/sbin/runscript</span>
depend<span class="o">()</span><span class="w"> </span><span class="o">{</span>
<span class="w"> </span>use<span class="w"> </span>logger<span class="w"> </span>dns
<span class="w"> </span>need<span class="w"> </span>apache2
<span class="w"> </span>provide<span class="w"> </span>jenkins
<span class="o">}</span>
<span class="nv">JENKINS_USER</span><span class="o">=</span>jenkins
<span class="nv">LOCKFILE</span><span class="o">=</span>/var/run/jenkins.pid
<span class="nv">JENKINS_HOME</span><span class="o">=</span>/home/jenkins
<span class="nv">JAVA_HOME</span><span class="o">=</span>/usr/java/jdk1.6.0_25
<span class="nv">JAVA_OPTS …</span></code></pre></div><p>Not the best but its working for me...maybe <code>JENKINS_*</code> and <code>JAVA_OPTS</code> can be moved to <code>/etc/conf.d/jenkins</code> or something else.</p>
<div class="highlight"><pre><span></span><code><span class="ch">#!/sbin/runscript</span>
depend<span class="o">()</span><span class="w"> </span><span class="o">{</span>
<span class="w"> </span>use<span class="w"> </span>logger<span class="w"> </span>dns
<span class="w"> </span>need<span class="w"> </span>apache2
<span class="w"> </span>provide<span class="w"> </span>jenkins
<span class="o">}</span>
<span class="nv">JENKINS_USER</span><span class="o">=</span>jenkins
<span class="nv">LOCKFILE</span><span class="o">=</span>/var/run/jenkins.pid
<span class="nv">JENKINS_HOME</span><span class="o">=</span>/home/jenkins
<span class="nv">JAVA_HOME</span><span class="o">=</span>/usr/java/jdk1.6.0_25
<span class="nv">JAVA_OPTS</span><span class="o">=</span><span class="s2">"-DJENKINS_HOME=</span><span class="si">${</span><span class="nv">JENKINS_HOME</span><span class="si">}</span><span class="s2">/jenkins-home -Xmx512m -Djava.awt.headless=true -server"</span>
<span class="nv">JENKINS_OPTS</span><span class="o">=</span><span class="s2">"--httpPort=8080 --httpListenAddress=127.0.0.1 --ajp13Port=-1"</span>
<span class="nv">JENKINS_OPTS</span><span class="o">=</span><span class="s2">"</span><span class="si">${</span><span class="nv">JENKINS_OPTS</span><span class="si">}</span><span class="s2"> --logfile=</span><span class="si">${</span><span class="nv">JENKINS_HOME</span><span class="si">}</span><span class="s2">/jenkins.log"</span>
<span class="nv">ARGS</span><span class="o">=</span><span class="s2">"</span><span class="si">${</span><span class="nv">JAVA_OPTS</span><span class="si">}</span><span class="s2"> -jar </span><span class="si">${</span><span class="nv">JENKINS_HOME</span><span class="si">}</span><span class="s2">/jenkins.war </span><span class="si">${</span><span class="nv">JENKINS_OPTS</span><span class="si">}</span><span class="s2">"</span>
start<span class="o">()</span><span class="w"> </span><span class="o">{</span>
<span class="w"> </span>ebegin<span class="w"> </span><span class="s2">"Starting </span><span class="si">${</span><span class="nv">SVCNAME</span><span class="si">}</span><span class="s2">"</span>
<span class="w"> </span>start-stop-daemon<span class="w"> </span>--user<span class="w"> </span><span class="si">${</span><span class="nv">JENKINS_USER</span><span class="si">}</span><span class="w"> </span>--make-pidfile<span class="w"> </span>--pidfile<span class="w"> </span><span class="si">${</span><span class="nv">LOCKFILE</span><span class="si">}</span><span class="w"> </span>
<span class="w"> </span>--background<span class="w"> </span>-1<span class="w"> </span><span class="si">${</span><span class="nv">JENKINS_HOME</span><span class="si">}</span>/jenkins-console.log<span class="w"> </span>-2<span class="w"> </span><span class="si">${</span><span class="nv">JENKINS_HOME</span><span class="si">}</span>/jenkins-console.log<span class="w"> </span>
<span class="w"> </span>--start<span class="w"> </span>--exec<span class="w"> </span><span class="si">${</span><span class="nv">JAVA_HOME</span><span class="si">}</span>/bin/java<span class="w"> </span>--<span class="w"> </span><span class="si">${</span><span class="nv">ARGS</span><span class="si">}</span>
<span class="w"> </span>eend<span class="w"> </span><span class="nv">$?</span>
<span class="o">}</span>
stop<span class="o">()</span><span class="w"> </span><span class="o">{</span>
<span class="w"> </span>ebegin<span class="w"> </span><span class="s2">"Stopping </span><span class="si">${</span><span class="nv">SVCNAME</span><span class="si">}</span><span class="s2">"</span>
<span class="w"> </span>start-stop-daemon<span class="w"> </span>--stop<span class="w"> </span>--pidfile<span class="w"> </span><span class="si">${</span><span class="nv">LOCKFILE</span><span class="si">}</span><span class="w"> </span>--exec<span class="w"> </span><span class="si">${</span><span class="nv">JAVA_HOME</span><span class="si">}</span>/bin/java
<span class="w"> </span>eend<span class="w"> </span><span class="nv">$?</span>
<span class="o">}</span>
</code></pre></div>Windows 7 error 0x803000012012-09-18T09:50:00+02:002012-09-18T09:50:00+02:00rmicheltag:blog.devnu11.net,2012-09-18:/2012/09/windows-7-error-0x80300001.html<p>THANKS Microsoft for this self-explanatory error message during a installation:</p>
<p><strong>"Windows is unable to install to the selected location. Error: 0x80300001."</strong></p>
<p>You should write "FOOOOO! Maybe you have the wrong CD/DVD in your drive."</p>
<p>(I had the virtio drivers cd in my drive...)</p>Gentoo and libvirt-0.9.122012-08-01T09:34:00+02:002012-08-01T09:34:00+02:00rmicheltag:blog.devnu11.net,2012-08-01:/2012/08/gentoo-and-libvirt-0-9-12.html<p>Yesterday i've started the update process for my system...so far, so good.</p>
<p>After a while <code>emerge</code> finished successfully...of course with a lot of messages, even some messages (from libvirt) that in my kernel config some features are missing e.g.</p>
<div class="highlight"><pre><span></span><code><span class="o">[</span>...<span class="o">]</span>
CONFIG_DEVPTS_MULTIPLE_INSTANCES
CONFIG_VETH
CONFIG_MACVLAN
CONFIG_NETFILTER_XT_TARGET_CHECKSUM
CONFIG_NETFILTER_ADVANCED
CONFIG_BRIDGE_NF_EBTABLES
<span class="o">[</span>...<span class="o">]</span>
</code></pre></div>
<p>As usually …</p><p>Yesterday i've started the update process for my system...so far, so good.</p>
<p>After a while <code>emerge</code> finished successfully...of course with a lot of messages, even some messages (from libvirt) that in my kernel config some features are missing e.g.</p>
<div class="highlight"><pre><span></span><code><span class="o">[</span>...<span class="o">]</span>
CONFIG_DEVPTS_MULTIPLE_INSTANCES
CONFIG_VETH
CONFIG_MACVLAN
CONFIG_NETFILTER_XT_TARGET_CHECKSUM
CONFIG_NETFILTER_ADVANCED
CONFIG_BRIDGE_NF_EBTABLES
<span class="o">[</span>...<span class="o">]</span>
</code></pre></div>
<p>As usually i've ignored these messages :( After a reboot i try'd to start one of my several VMs - without success. Only with a error message</p>
<div class="highlight"><pre><span></span><code>Could<span class="w"> </span>not<span class="w"> </span>access<span class="w"> </span>KVM<span class="w"> </span>kernel<span class="w"> </span>module:<span class="w"> </span>Permission<span class="w"> </span>denied<span class="w"> </span>
failed<span class="w"> </span>to<span class="w"> </span>initialize<span class="w"> </span>KVM:<span class="w"> </span>Permission<span class="w"> </span>denied<span class="w"> </span>
No<span class="w"> </span>accelerator<span class="w"> </span>found!
</code></pre></div>
<p>Uhm what is this now? I've try'd to start qemu-kvm on a shell..that worked. So it must be anything with libvirt and qemu-kvm. After some research on my system i've found out that <code>qemu-kvm</code> try'd to start the VMs as the user <code>qemu</code> but <code>/dev/kvm</code> belongs to <code>root:kvm</code>.</p>
<p>Adding the user <code>qemu</code> to the group <code>kvm</code> should help</p>
<div class="highlight"><pre><span></span><code>gpasswd<span class="w"> </span>-a<span class="w"> </span>qemu<span class="w"> </span>kvm
</code></pre></div>
<p>Maybe this is <a href="https://bugs.gentoo.org/show_bug.cgi?id=420507" title="Bugzilla">Bug</a> in the ebuild file!?</p>"No Java compiler available" on SLES11SP1 and tomcat62012-06-27T14:49:00+02:002012-06-27T14:49:00+02:00rmicheltag:blog.devnu11.net,2012-06-27:/2012/06/no-java-compiler-available-on-sles11sp1-and-tomcat6.html<p>On one of my two sle11 machines i had a java exception which i could not explain.</p>
<div class="highlight"><pre><span></span><code><span class="n">java</span><span class="p">.</span><span class="na">lang</span><span class="p">.</span><span class="na">IllegalStateException</span><span class="p">:</span><span class="w"> </span><span class="n">No</span><span class="w"> </span><span class="n">Java</span><span class="w"> </span><span class="n">compiler</span><span class="w"> </span><span class="n">available</span>
<span class="w"> </span><span class="n">org</span><span class="p">.</span><span class="na">apache</span><span class="p">.</span><span class="na">jasper</span><span class="p">.</span><span class="na">JspCompilationContext</span><span class="p">.</span><span class="na">createCompiler</span><span class="p">(</span><span class="n">JspCompilationContext</span><span class="p">.</span><span class="na">java</span><span class="p">:</span><span class="mi">229</span><span class="p">)</span>
<span class="w"> </span><span class="n">org</span><span class="p">.</span><span class="na">apache</span><span class="p">.</span><span class="na">jasper</span><span class="p">.</span><span class="na">JspCompilationContext</span><span class="p">.</span><span class="na">compile</span><span class="p">(</span><span class="n">JspCompilationContext</span><span class="p">.</span><span class="na">java</span><span class="p">:</span><span class="mi">581</span><span class="p">)</span>
<span class="w"> </span><span class="n">org</span><span class="p">.</span><span class="na">apache</span><span class="p">.</span><span class="na">jasper</span><span class="p">.</span><span class="na">servlet</span><span class="p">.</span><span class="na">JspServletWrapper</span><span class="p">.</span><span class="na">service</span><span class="p">(</span><span class="n">JspServletWrapper</span><span class="p">.</span><span class="na">java</span><span class="p">:</span><span class="mi">317</span><span class="p">)</span>
<span class="w"> </span><span class="n">org …</span></code></pre></div><p>On one of my two sle11 machines i had a java exception which i could not explain.</p>
<div class="highlight"><pre><span></span><code><span class="n">java</span><span class="p">.</span><span class="na">lang</span><span class="p">.</span><span class="na">IllegalStateException</span><span class="p">:</span><span class="w"> </span><span class="n">No</span><span class="w"> </span><span class="n">Java</span><span class="w"> </span><span class="n">compiler</span><span class="w"> </span><span class="n">available</span>
<span class="w"> </span><span class="n">org</span><span class="p">.</span><span class="na">apache</span><span class="p">.</span><span class="na">jasper</span><span class="p">.</span><span class="na">JspCompilationContext</span><span class="p">.</span><span class="na">createCompiler</span><span class="p">(</span><span class="n">JspCompilationContext</span><span class="p">.</span><span class="na">java</span><span class="p">:</span><span class="mi">229</span><span class="p">)</span>
<span class="w"> </span><span class="n">org</span><span class="p">.</span><span class="na">apache</span><span class="p">.</span><span class="na">jasper</span><span class="p">.</span><span class="na">JspCompilationContext</span><span class="p">.</span><span class="na">compile</span><span class="p">(</span><span class="n">JspCompilationContext</span><span class="p">.</span><span class="na">java</span><span class="p">:</span><span class="mi">581</span><span class="p">)</span>
<span class="w"> </span><span class="n">org</span><span class="p">.</span><span class="na">apache</span><span class="p">.</span><span class="na">jasper</span><span class="p">.</span><span class="na">servlet</span><span class="p">.</span><span class="na">JspServletWrapper</span><span class="p">.</span><span class="na">service</span><span class="p">(</span><span class="n">JspServletWrapper</span><span class="p">.</span><span class="na">java</span><span class="p">:</span><span class="mi">317</span><span class="p">)</span>
<span class="w"> </span><span class="n">org</span><span class="p">.</span><span class="na">apache</span><span class="p">.</span><span class="na">jasper</span><span class="p">.</span><span class="na">servlet</span><span class="p">.</span><span class="na">JspServlet</span><span class="p">.</span><span class="na">serviceJspFile</span><span class="p">(</span><span class="n">JspServlet</span><span class="p">.</span><span class="na">java</span><span class="p">:</span><span class="mi">342</span><span class="p">)</span>
<span class="w"> </span><span class="n">org</span><span class="p">.</span><span class="na">apache</span><span class="p">.</span><span class="na">jasper</span><span class="p">.</span><span class="na">servlet</span><span class="p">.</span><span class="na">JspServlet</span><span class="p">.</span><span class="na">service</span><span class="p">(</span><span class="n">JspServlet</span><span class="p">.</span><span class="na">java</span><span class="p">:</span><span class="mi">267</span><span class="p">)</span>
<span class="w"> </span><span class="n">javax</span><span class="p">.</span><span class="na">servlet</span><span class="p">.</span><span class="na">http</span><span class="p">.</span><span class="na">HttpServlet</span><span class="p">.</span><span class="na">service</span><span class="p">(</span><span class="n">HttpServlet</span><span class="p">.</span><span class="na">java</span><span class="p">:</span><span class="mi">717</span><span class="p">)</span>
<span class="w"> </span><span class="n">org</span><span class="p">.</span><span class="na">mule</span><span class="p">.</span><span class="na">galaxy</span><span class="p">.</span><span class="na">web</span><span class="p">.</span><span class="na">ThreadLocalCacheFilter</span><span class="p">.</span><span class="na">doFilter</span><span class="p">(</span><span class="n">ThreadLocalCacheFilter</span><span class="p">.</span><span class="na">java</span><span class="p">:</span><span class="mi">27</span><span class="p">)</span>
<span class="o">[</span><span class="p">...</span><span class="o">]</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="c1"># rpm -qa tomcat6</span>
tomcat6-6.0.18-20.35.36.1
</code></pre></div>
<p>Oracle Java JDK 1.6.0_27</p>
<p>After i compared both, i've found some missing links on the second one.</p>
<div class="highlight"><pre><span></span><code><span class="c1"># ln -s /usr/share/java/commons-collections-tomcat5.jar /usr/share/tomcat6/lib/</span>
<span class="c1"># ln -s /usr/share/java/commons-dbcp-tomcat5.jar /usr/share/tomcat6/lib/</span>
<span class="c1"># ln -s /usr/share/java/commons-pool-tomcat5.jar /usr/share/tomcat6/lib/</span>
<span class="c1"># ln -s /usr/share/java/ecj.jar /usr/share/tomcat6/lib/</span>
</code></pre></div>
<p>Restart the tomcat and be happy :)</p>wodim2012-06-18T08:21:00+02:002012-06-18T08:21:00+02:00rmicheltag:blog.devnu11.net,2012-06-18:/2012/06/wodim, Linux.html<p>Burning ISO image</p>
<div class="highlight"><pre><span></span><code>wodim<span class="w"> </span><span class="nv">speed</span><span class="o">=</span><span class="m">16</span><span class="w"> </span><span class="nv">dev</span><span class="o">=</span>/dev/cdrw<span class="w"> </span>image.iso
</code></pre></div>
<p>Copy on-the-fly</p>
<div class="highlight"><pre><span></span><code>genisoimage<span class="w"> </span>-R<span class="w"> </span>-T<span class="w"> </span>-V<span class="w"> </span>/dev/cdrom<span class="w"> </span><span class="p">|</span><span class="w"> </span>wodim<span class="w"> </span><span class="nv">dev</span><span class="o">=</span>/dev/cdrw
</code></pre></div>
<p>Blanking CDRW</p>
<div class="highlight"><pre><span></span><code>wodim<span class="w"> </span><span class="nv">dev</span><span class="o">=</span>/dev/cdrw<span class="w"> </span><span class="nv">blank</span><span class="o">=</span>disk
</code></pre></div>Gentoo / ArchLinux - NetworkManager and policykit2012-01-26T11:47:00+01:002012-01-26T11:47:00+01:00rmicheltag:blog.devnu11.net,2012-01-26:/2012/01/gentoo-archlinux-networkmanager-and-policykit.html<p>If you want to use the NM (especially the nm-applet) in Gentoo or ArchLinux, you have to grant the user to access the NM. Therefor you create the following file</p>
<div class="highlight"><pre><span></span><code><span class="c1"># cat /etc/polkit-1/localauthority/50-local.d/org.freedesktop.NetworkManager.pkla </span>
<span class="k">[nm-applet]</span>
<span class="na">Identity</span><span class="o">=</span><span class="s">unix-group:plugdev</span>
<span class="na">Action</span><span class="o">=</span><span class="s">org.freedesktop.NetworkManager.*</span>
<span class="na">ResultAny</span><span class="o">=</span><span class="s">yes …</span></code></pre></div><p>If you want to use the NM (especially the nm-applet) in Gentoo or ArchLinux, you have to grant the user to access the NM. Therefor you create the following file</p>
<div class="highlight"><pre><span></span><code><span class="c1"># cat /etc/polkit-1/localauthority/50-local.d/org.freedesktop.NetworkManager.pkla </span>
<span class="k">[nm-applet]</span>
<span class="na">Identity</span><span class="o">=</span><span class="s">unix-group:plugdev</span>
<span class="na">Action</span><span class="o">=</span><span class="s">org.freedesktop.NetworkManager.*</span>
<span class="na">ResultAny</span><span class="o">=</span><span class="s">yes</span>
<span class="na">ResultInactive</span><span class="o">=</span><span class="s">no</span>
<span class="na">ResultActive</span><span class="o">=</span><span class="s">yes</span>
</code></pre></div>
<p>Thats necessary because <code>polkit-auth</code> was removed from the policykit package. Also you must add the user to <code>plugdev</code> group</p>
<div class="highlight"><pre><span></span><code><span class="c1"># usermod -a -G plugdev $USERNAME</span>
</code></pre></div>Gentoo Binary Packages2012-01-16T12:17:00+01:002012-01-16T12:17:00+01:00rmicheltag:blog.devnu11.net,2012-01-16:/2012/01/gentoo-binary-packages.html<p><strong>GCC (4.5.3) flags for</strong></p>
<div class="highlight"><pre><span></span><code>* Intel(R) Core(TM) i7 CPU M 620
* Intel(R) Core(TM) i7 CPU 920
* Intel(R) Core(TM)2 Duo CPU T7700
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="nv">CFLAGS</span><span class="o">=</span><span class="s2">"-march=core2 -mtune=generic -O2 -pipe -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -msse4 -mmmx"</span>
<span class="nv">CXXFLAGS</span><span class="o">=</span><span class="s2">"</span><span class="si">${</span><span class="nv">CFLAGS</span><span class="si">}</span><span class="s2">"</span>
<span class="nv">CHOST</span><span class="o">=</span><span class="s2">"x86_64-pc-linux-gnu …</span></code></pre></div><p><strong>GCC (4.5.3) flags for</strong></p>
<div class="highlight"><pre><span></span><code>* Intel(R) Core(TM) i7 CPU M 620
* Intel(R) Core(TM) i7 CPU 920
* Intel(R) Core(TM)2 Duo CPU T7700
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="nv">CFLAGS</span><span class="o">=</span><span class="s2">"-march=core2 -mtune=generic -O2 -pipe -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -msse4 -mmmx"</span>
<span class="nv">CXXFLAGS</span><span class="o">=</span><span class="s2">"</span><span class="si">${</span><span class="nv">CFLAGS</span><span class="si">}</span><span class="s2">"</span>
<span class="nv">CHOST</span><span class="o">=</span><span class="s2">"x86_64-pc-linux-gnu"</span>
</code></pre></div>
<p><strong>USE flags</strong></p>
<div class="highlight"><pre><span></span><code><span class="nv">USE</span><span class="o">=</span><span class="s2">"64bit X a52 aac alsa apng bash-completion bluetooth chroot</span>
<span class="s2"> connection-sharing consolekit dbus dhcpcd dts dvb dvd extras faac ffmpeg</span>
<span class="s2"> fontconfig gcj gif gnutls gpg graphics gtk gudev icu imap iproute2 iscsi</span>
<span class="s2"> jpeg kpathsea lame lvm mmx mp3 mysql network networkmanager ogg opengl</span>
<span class="s2"> perl pkcs11 png policykit pstricks pulseaudio python qemu resolvconf sasl</span>
<span class="s2"> sdl smtp spice sse sse2 ssl tiff truetype udev vim-syntax virt-network</span>
<span class="s2"> vorbis wifi x264 xcb xvid -kde -qt4 -ruby"</span>
</code></pre></div>
<p><strong>additional flags</strong></p>
<div class="highlight"><pre><span></span><code><span class="nv">MAKEOPTS</span><span class="o">=</span><span class="s2">"-j10"</span>
<span class="nv">FEATURES</span><span class="o">=</span><span class="s2">"buildpkg"</span>
<span class="nv">VIDEO_CARDS</span><span class="o">=</span><span class="s2">"intel"</span>
<span class="nv">LINGUAS</span><span class="o">=</span><span class="s2">"en de"</span>
<span class="nv">INPUT_DEVICES</span><span class="o">=</span><span class="s2">"evdev keyboard mouse synaptics"</span>
<span class="nv">QEMU_SOFTMMU_TARGETS</span><span class="o">=</span><span class="s2">"x86_64 arm i386 ppc ppc64 sparc sparc64"</span>
<span class="nv">QEMU_USER_TARGETS</span><span class="o">=</span><span class="s2">"arm i386 ppc ppc64 sparc sparc64 x86_64"</span>
</code></pre></div>
<p><strong>Usage</strong><br>
Host system <a href="http://mirror.devnu11.net/gentoo/">http://mirror.devnu11.net/gentoo/</a></p>
<div class="highlight"><pre><span></span><code><span class="nv">PORTAGE_BINHOST</span><span class="o">=</span><span class="s2">"http://mirror.devnu11.net/gentoo/packages/"</span>
<span class="nv">FEATURES</span><span class="o">=</span><span class="s2">"getbinpkg"</span>
</code></pre></div>
<p>If you still need more information? Ask!</p>archlinux - Acrobat Reader2012-01-13T10:37:00+01:002012-01-13T10:37:00+01:00rmicheltag:blog.devnu11.net,2012-01-13:/2012/01/archlinux-acrobat-reader.html<p>Sometimes its necessary/pleasanter to use the Acrobat Reader for some PDF files like forms...</p>
<p><strong>Enable the multilib repository</strong></p>
<div class="highlight"><pre><span></span><code><span class="c1"># cat /etc/pacman.conf</span>
<span class="k">[...]</span>
<span class="k">[multilib]</span>
<span class="na">Include</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">/etc/pacman.d/mirrorlist</span>
<span class="k">[...]</span>
<span class="c1"># pacman -Sy</span>
</code></pre></div>
<p><strong>Install necessary packages</strong></p>
<div class="highlight"><pre><span></span><code><span class="c1"># pacman -S lib32-libxml2 lib32-gtk2 lib32-gdk-pixbuf2</span>
</code></pre></div>
<p>Maybe there are some more packages still missing on your system …</p><p>Sometimes its necessary/pleasanter to use the Acrobat Reader for some PDF files like forms...</p>
<p><strong>Enable the multilib repository</strong></p>
<div class="highlight"><pre><span></span><code><span class="c1"># cat /etc/pacman.conf</span>
<span class="k">[...]</span>
<span class="k">[multilib]</span>
<span class="na">Include</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">/etc/pacman.d/mirrorlist</span>
<span class="k">[...]</span>
<span class="c1"># pacman -Sy</span>
</code></pre></div>
<p><strong>Install necessary packages</strong></p>
<div class="highlight"><pre><span></span><code><span class="c1"># pacman -S lib32-libxml2 lib32-gtk2 lib32-gdk-pixbuf2</span>
</code></pre></div>
<p>Maybe there are some more packages still missing on your system!</p>
<p><strong>Download and install Acrobat Reader</strong></p>
<div class="highlight"><pre><span></span><code><span class="c1"># wget http://ardownload.adobe.com/pub/adobe/reader/unix/9.x/9.4.2/deu/AdbeRdr9.4.2-1_i486linux_deu.bin</span>
<span class="c1"># chmod +x AdbeRdr9.4.2-1_i486linux_deu.bin</span>
<span class="c1"># ./AdbeRdr9.4.2-1_i486linux_deu.bin</span>
</code></pre></div>
<p>Or you can use the <a href="http://aur.archlinux.org/packages/ac/acroread-de/PKGBUILD" title="Acrobat Reader PKGBUILD file">PKGBUILD</a> file from the AUR repository.</p>pv - monitor the progress of data through a pipe2011-09-08T12:29:00+02:002011-09-08T12:29:00+02:00rmicheltag:blog.devnu11.net,2011-09-08:/2011/09/pv-monitor-the-progress-of-data-through-a-pipe.html<p>I've found a very nice tool <code>pv</code> ...</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>dd<span class="w"> </span><span class="k">if</span><span class="o">=</span>/dev/sda1<span class="w"> </span><span class="p">|</span><span class="w"> </span>pv<span class="w"> </span><span class="p">|</span><span class="w"> </span>dd<span class="w"> </span><span class="nv">of</span><span class="o">=</span>backup.img
359MB<span class="w"> </span><span class="m">0</span>:00:05<span class="w"> </span><span class="o">[</span><span class="m">75</span>.3MB/s<span class="o">]</span><span class="w"> </span><span class="o">[</span><span class="w"> </span><<span class="o">=</span>><span class="w"> </span><span class="o">]</span>
</code></pre></div>THE BOYS WENT OUT - A KITBOARD ROADTRIP2011-08-03T14:50:00+02:002011-08-03T14:50:00+02:00rmicheltag:blog.devnu11.net,2011-08-03:/2011/08/the-boys-went-out-a-kitboard-roadtrip.html<p>http://vimeo.com/25349515</p>
<p><a href="http://www.theboyswentout.com">http://www.theboyswentout.com</a></p>
<p><strong>and</strong></p>
<blockquote>
<p>Hello,</p>
<p>the following article has been dispatched to you!</p>
<p>1 DVD The Boys Went Out EUR 12,50 // 1 EUR 12,50</p>
<hr>
</blockquote>
<p><strong>*YEAH*</strong></p>THE ART OF FLIGHT2011-05-23T22:04:00+02:002011-05-23T22:04:00+02:00rmicheltag:blog.devnu11.net,2011-05-23:/2011/05/the-art-of-flight.html<p>http://www.youtube.com/watch?v=kh29_SERH0Y</p>
<p><strong><a href="http://www.artofflightmovie.com">The Art of Flight</a></strong></p>libvirt - QEMU Monitor Protocol (QMP)2011-05-20T13:40:00+02:002011-05-20T13:40:00+02:00rmicheltag:blog.devnu11.net,2011-05-20:/2011/05/libvirt-qemu-monitor-protocol-qmp-2.html<p>Because libvirt self is using the qemu monitor to mange the guests, it is not available for the user. Since version 0.8.6 <a href="http://libvirt.org/git/?p=libvirt.git;a=commit;h=a5b5307da2228e1f87147ab14eb7bef457a90c3f">[1]</a> its possbile to send a command throught libvirt to the monitor.</p>
<div class="bash highlight"><pre><span></span><code>virsh qemu-monitor-command
</code></pre></div>
<p>The problem is that you must use the QMP format to send …</p><p>Because libvirt self is using the qemu monitor to mange the guests, it is not available for the user. Since version 0.8.6 <a href="http://libvirt.org/git/?p=libvirt.git;a=commit;h=a5b5307da2228e1f87147ab14eb7bef457a90c3f">[1]</a> its possbile to send a command throught libvirt to the monitor.</p>
<div class="bash highlight"><pre><span></span><code>virsh qemu-monitor-command
</code></pre></div>
<p>The problem is that you must use the QMP format to send a command like</p>
<div class="bash highlight"><pre><span></span><code>$<span class="w"> </span>virsh<span class="w"> </span>qemu-monitor-command<span class="w"> </span>
<span class="w"> </span><span class="s1">'{"execute":"human-monitor-command","arguments":{"command-line":"info kvm"}}'</span>
</code></pre></div>
<h4>The solution: Human Monitor Protocol / <code>--hmp</code></h4>
<p>With this nifty switch <a href="http://libvirt.org/git/?p=libvirt.git;a=commit;h=2169472ab6cac3bdb1f32578de2b608a61a1d703">[2]</a> its possible to use qemu <a href="qemu-doc.html#pcsys_005fmonitor">monitor commands</a> without the QMP format like</p>
<div class="bash highlight"><pre><span></span><code>$<span class="w"> </span>virsh<span class="w"> </span>qemu-monitor-command<span class="w"> </span>--hmp<span class="w"> </span><span class="s1">'info kvm'</span>
kvm<span class="w"> </span>support:<span class="w"> </span>enabled
</code></pre></div>Firefox is loading painfully slowly...2011-05-05T17:08:00+02:002011-05-05T17:08:00+02:00rmicheltag:blog.devnu11.net,2011-05-05:/2011/05/firefox-is-loading-painfully-slowly.html<p><strong>aka Firefox, DNS lookups and IPv6 (under Arch)</strong></p>
<p>Since my laptop is running with Arch, sometimes my Firefox makes me crazy when i'm trying to open a new page because it show a message like <strong>Looking up heise.de...</strong> for minutes !</p>
<p>After googling a few seconds i've found someting that …</p><p><strong>aka Firefox, DNS lookups and IPv6 (under Arch)</strong></p>
<p>Since my laptop is running with Arch, sometimes my Firefox makes me crazy when i'm trying to open a new page because it show a message like <strong>Looking up heise.de...</strong> for minutes !</p>
<p>After googling a few seconds i've found someting that is working for me...</p>
<ol>
<li>Go to <a href="about:config"><strong>about:config</strong></a></li>
<li>Search for <code>network.dns.disableIPv6</code></li>
<li>Set it to <code>true</code></li>
</ol>
<p>That is only a workaround because i have no time to debug the root cause.</p>Force a reboot/shutdown2011-04-27T14:06:00+02:002011-04-27T14:06:00+02:00rmicheltag:blog.devnu11.net,2011-04-27:/2011/04/force-a-rebootshutdown.html<p><strong>force reboot</strong></p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="m">1</span><span class="w"> </span>><span class="w"> </span>/proc/sys/kernel/sysrq
$<span class="w"> </span><span class="nb">echo</span><span class="w"> </span>b<span class="w"> </span>><span class="w"> </span>/proc/sysrq-trigger
</code></pre></div>
<p><strong>force shutdown</strong></p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="m">1</span><span class="w"> </span>><span class="w"> </span>/proc/sys/kernel/sysrq
$<span class="w"> </span><span class="nb">echo</span><span class="w"> </span>o<span class="w"> </span>><span class="w"> </span>/proc/sysrq-trigger
</code></pre></div>ERROR: boot device didn't show up after 30 seconds2011-04-20T21:49:00+02:002011-04-20T21:49:00+02:00rmicheltag:blog.devnu11.net,2011-04-20:/2011/04/error-boot-device-didnt-show-up-after-30-seconds.html<p>If you're trying to boot the Archlinux 2010.05 CD/DVD/Netinstall and getting the message</p>
<p><strong>ERROR: boot device didn't show up after 30 seconds ...</strong></p>
<p>try this one to fix the problem</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>udevadm<span class="w"> </span>trigger
$<span class="w"> </span><span class="nb">exit</span>
</code></pre></div>openssl with version information under sles11sp12011-03-29T17:18:00+02:002011-03-29T17:18:00+02:00rmicheltag:blog.devnu11.net,2011-03-29:/2011/03/openssl-with-version-information-under-sles11sp1.html<p>If you getting errors like this one</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>/path/to/program
/usr/lib/libcrypto.so.0.9.8:<span class="w"> </span>no<span class="w"> </span>version<span class="w"> </span>information<span class="w"> </span>available
</code></pre></div>
<p>you need a libcrypto.so and a libssl.so with version information.</p>
<p><a href="http://rt.openssl.org/Ticket/Display.html?id=1222&user=guest&pass=guest">Here</a> are some information about the problem.</p>
<blockquote>
<p>openssl has evolved to a very important library in Linux …</p></blockquote><p>If you getting errors like this one</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>/path/to/program
/usr/lib/libcrypto.so.0.9.8:<span class="w"> </span>no<span class="w"> </span>version<span class="w"> </span>information<span class="w"> </span>available
</code></pre></div>
<p>you need a libcrypto.so and a libssl.so with version information.</p>
<p><a href="http://rt.openssl.org/Ticket/Display.html?id=1222&user=guest&pass=guest">Here</a> are some information about the problem.</p>
<blockquote>
<p>openssl has evolved to a very important library in Linux distribution. A<br>
lot of cryptographic applications link to it including system libraries<br>
like pam modules and apache modules. Now it becomes more and more<br>
difficult to get all the binaries and libraries to link to the same<br>
version of openssl. This leads to situations where an application uses<br>
some libraries where on links to openssl 0.9.7 and another one to<br>
version 0.9.8. Since the symbols of the libraries are not yet versioned<br>
this leads to severe segfaults.</p>
</blockquote>
<p><strong>Install source package from the repository</strong></p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>zypper<span class="w"> </span><span class="k">in</span><span class="w"> </span>-t<span class="w"> </span>srcpackages<span class="w"> </span>openssl
</code></pre></div>
<p><strong>Create patches</strong><br>
/usr/src/packages/SOURCES/openssl-version-patch.patch</p>
<div class="highlight"><pre><span></span><code><span class="gh">diff -Naur openssl-0.9.8h/Configure openssl-0.9.8h-new/Configure</span>
<span class="gd">--- openssl-0.9.8h/Configure 2008-05-02 01:11:30.000000000 +0200</span>
<span class="gi">+++ openssl-0.9.8h-new/Configure 2011-02-22 15:30:05.000000000 +0100</span>
<span class="gu">@@ -1327,6 +1327,8 @@</span>
<span class="w"> </span> $shlib_minor=$2;
<span class="w"> </span> }
<span class="gi">+$shared_ldflag .= " -Wl,--version-script=openssl.ld";</span>
<span class="gi">+</span>
<span class="w"> </span>open(IN,'$Makefile.new") || die "unable to create $Makefile.new:$!\n";
<span class="gh">diff -Naur openssl-0.9.8h/engines/openssl.ld openssl-0.9.8h-new/engines/openssl.ld</span>
<span class="gd">--- openssl-0.9.8h/engines/openssl.ld 1970-01-01 01:00:00.000000000 +0100</span>
<span class="gi">+++ openssl-0.9.8h-new/engines/openssl.ld 2011-02-22 15:31:41.000000000 +0100</span>
<span class="gu">@@ -0,0 +1,4 @@</span>
<span class="gi">+OPENSSL_0.9.8 {</span>
<span class="gi">+ global:</span>
<span class="gi">+ *;</span>
<span class="gi">+};</span>
<span class="gh">diff -Naur openssl-0.9.8h/Makefile openssl-0.9.8h-new/Makefile</span>
<span class="gd">--- openssl-0.9.8h/Makefile 2008-05-28 10:48:27.000000000 +0200</span>
<span class="gi">+++ openssl-0.9.8h-new/Makefile 2011-02-22 15:30:59.000000000 +0100</span>
<span class="gu">@@ -140,9 +140,9 @@</span>
<span class="w"> </span>LIBS= libcrypto.a libssl.a
<span class="w"> </span>SHARED_CRYPTO=libcrypto$(SHLIB_EXT)
<span class="w"> </span>SHARED_SSL=libssl$(SHLIB_EXT)
<span class="gd">-SHARED_LIBS=</span>
<span class="gd">-SHARED_LIBS_LINK_EXTS=</span>
<span class="gd">-SHARED_LDFLAGS=</span>
<span class="gi">+SHARED_LIBS=$(SHARED_FIPS) $(SHARED_CRYPTO) $(SHARED_SSL)</span>
<span class="gi">+SHARED_LIBS_LINK_EXTS=.so.$(SHLIB_MAJOR) .so</span>
<span class="gi">+SHARED_LDFLAGS=-m64 -Wl,--version-script=openssl.ld</span>
<span class="w"> </span>GENERAL= Makefile
<span class="w"> </span>BASENAME= openssl
<span class="gh">diff -Naur openssl-0.9.8h/openssl.ld openssl-0.9.8h-new/openssl.ld</span>
<span class="gd">--- openssl-0.9.8h/openssl.ld 1970-01-01 01:00:00.000000000 +0100</span>
<span class="gi">+++ openssl-0.9.8h-new/openssl.ld 2011-02-22 15:31:48.000000000 +0100</span>
<span class="gu">@@ -0,0 +1,4 @@</span>
<span class="gi">+OPENSSL_0.9.8 {</span>
<span class="gi">+ global:</span>
<span class="gi">+ *;</span>
<span class="gi">+};</span>
</code></pre></div>
<p>/usr/src/packages/SPECS/openssl.spec.patch</p>
<div class="highlight"><pre><span></span><code><span class="gd">--- openssl.spec 2011-02-22 17:00:26.000000000 +0100</span>
<span class="gi">+++ openssl-new.spec 2011-02-22 16:59:58.000000000 +0100</span>
<span class="gu">@@ -32,7 +32,7 @@</span>
<span class="w"> </span>%endif
<span class="w"> </span>#
<span class="w"> </span>Version: 0.9.8h
<span class="gd">-Release: 30.30.1</span>
<span class="gi">+Release: 30.30.1.custom</span>
<span class="w"> </span>Summary: Secure Sockets and Transport Layer Security
<span class="w"> </span>Url: http://www.openssl.org/
<span class="w"> </span>Source: http://www.%{name}.org/source/%{name}-%{version}.tar.bz2
<span class="gu">@@ -67,6 +67,7 @@</span>
<span class="w"> </span>Patch26: bug608666.patch
<span class="w"> </span>Patch27: CVE-2010-3864.patch
<span class="w"> </span>Patch28: CVE-2010-4180.patch
<span class="gi">+Patch29: openssl-version-patch.patch</span>
<span class="w"> </span>BuildRoot: %{_tmppath}/%{name}-%{version}-build
<span class="w"> </span>%description
<span class="gu">@@ -222,6 +223,7 @@</span>
<span class="w"> </span>%patch26 -p1
<span class="w"> </span>%patch27 -p1
<span class="w"> </span>%patch28 -p1
<span class="gi">+%patch29 -p1</span>
<span class="w"> </span>cp -p %{S:10} .
<span class="w"> </span># lib64 installation fixes
<span class="w"> </span>for i in Makefile.org engines/Makefile; do
<span class="gu">@@ -433,6 +435,8 @@</span>
<span class="w"> </span>%{_bindir}/%{name}
<span class="w"> </span>%changelog
<span class="gi">+* Tue Feb 22 2011 rmichel@devnu11.net</span>
<span class="gi">+- added for rsa usage the version information.</span>
<span class="w"> </span>* Tue Dec 7 2010 gjhe@novell.com
<span class="w"> </span>- fix bug [bnc#657663]
<span class="w"> </span> CVE-2010-4180
</code></pre></div>
<p><strong>Patch the spec file</strong></p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span><span class="nb">cd</span><span class="w"> </span>/usr/src/packages/SPEC/
$<span class="w"> </span>patch<span class="w"> </span>-i<span class="w"> </span>openssl.spec.patch
patching<span class="w"> </span>file<span class="w"> </span>openssl.spec
</code></pre></div>
<p><strong>Build the new rpm packages</strong></p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>rpmbuild<span class="w"> </span>-bb<span class="w"> </span>/usr/src/packages/SPECS/openssl.spec
</code></pre></div>JBoss Cluster - ServerPeerID2011-02-22T17:52:00+01:002011-02-22T17:52:00+01:00rmicheltag:blog.devnu11.net,2011-02-22:/2011/02/jboss-cluster-serverpeerid.html<p><strong>$SERVER/deploy/messaging/messaging-service.xml</strong></p>
<div class="highlight"><pre><span></span><code>${jboss.messaging.ServerPeerID:0}
</code></pre></div>
<p>For clustered environment each jboss node need a unique ServerPeerID which must be a valid integer.</p>Migrating Ubuntu to Linux Mint 102011-02-22T15:03:00+01:002011-02-22T15:03:00+01:00rmicheltag:blog.devnu11.net,2011-02-22:/2011/02/migrating-ubuntu-to-linux-mint-10.html<p>Here are some random notes for the migration from ubuntu to linux mint 10 (julia) !</p>
<p><strong>/etc/apt/sources.list</strong></p>
<div class="highlight"><pre><span></span><code>deb<span class="w"> </span>http://packages.linuxmint.com/<span class="w"> </span>julia<span class="w"> </span>main<span class="w"> </span>upstream<span class="w"> </span>import
deb<span class="w"> </span>http://archive.ubuntu.com/ubuntu/<span class="w"> </span>maverick<span class="w"> </span>main<span class="w"> </span>restricted<span class="w"> </span>universe<span class="w"> </span>multiverse
deb<span class="w"> </span>http://archive.ubuntu.com/ubuntu/<span class="w"> </span>maverick-updates<span class="w"> </span>main<span class="w"> </span>restricted<span class="w"> </span>universe<span class="w"> </span>multiverse …</code></pre></div><p>Here are some random notes for the migration from ubuntu to linux mint 10 (julia) !</p>
<p><strong>/etc/apt/sources.list</strong></p>
<div class="highlight"><pre><span></span><code>deb<span class="w"> </span>http://packages.linuxmint.com/<span class="w"> </span>julia<span class="w"> </span>main<span class="w"> </span>upstream<span class="w"> </span>import
deb<span class="w"> </span>http://archive.ubuntu.com/ubuntu/<span class="w"> </span>maverick<span class="w"> </span>main<span class="w"> </span>restricted<span class="w"> </span>universe<span class="w"> </span>multiverse
deb<span class="w"> </span>http://archive.ubuntu.com/ubuntu/<span class="w"> </span>maverick-updates<span class="w"> </span>main<span class="w"> </span>restricted<span class="w"> </span>universe<span class="w"> </span>multiverse
deb<span class="w"> </span>http://security.ubuntu.com/ubuntu/<span class="w"> </span>maverick-security<span class="w"> </span>main<span class="w"> </span>restricted<span class="w"> </span>universe<span class="w"> </span>multiverse
deb<span class="w"> </span>http://archive.canonical.com/ubuntu/<span class="w"> </span>maverick<span class="w"> </span>partner
deb<span class="w"> </span>http://packages.medibuntu.org/<span class="w"> </span>maverick<span class="w"> </span>free<span class="w"> </span>non-free
<span class="c1">#deb http://archive.getdeb.net/ubuntu maverick-getdeb apps</span>
<span class="c1">#deb http://archive.getdeb.net/ubuntu maverick-getdeb games</span>
</code></pre></div>
<p><strong>/etc/apt/preferences</strong></p>
<div class="highlight"><pre><span></span><code>Package:<span class="w"> </span>*
Pin:<span class="w"> </span>release<span class="w"> </span><span class="nv">o</span><span class="o">=</span>linuxmint
Pin-Priority:<span class="w"> </span><span class="m">700</span>
Package:<span class="w"> </span>*
Pin:<span class="w"> </span>origin<span class="w"> </span>packages.linuxmint.com
Pin-Priority:<span class="w"> </span><span class="m">700</span>
Package:<span class="w"> </span>*
Pin:<span class="w"> </span>release<span class="w"> </span><span class="nv">o</span><span class="o">=</span>Ubuntu
Pin-Priority:<span class="w"> </span><span class="m">500</span>
</code></pre></div>
<p><strong>adding gpg keys</strong></p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>gpg<span class="w"> </span>--keyserver<span class="w"> </span>hkp://keyserver.ubuntu.com<span class="w"> </span>--recv<span class="w"> </span>3EE67F3D0FF405B2<span class="w"> </span><span class="o">&&</span><span class="w"> </span>gpg<span class="w"> </span>--export<span class="w"> </span>--armor<span class="w"> </span>3EE67F3D0FF405B2<span class="w"> </span><span class="p">|</span><span class="w"> </span>sudo<span class="w"> </span>apt-key<span class="w"> </span>add<span class="w"> </span>-
$<span class="w"> </span>gpg<span class="w"> </span>--keyserver<span class="w"> </span>hkp://keyserver.ubuntu.com<span class="w"> </span>--recv<span class="w"> </span>2EBC26B60C5A2783<span class="w"> </span><span class="o">&&</span><span class="w"> </span>gpg<span class="w"> </span>--export<span class="w"> </span>--armor<span class="w"> </span>2EBC26B60C5A2783<span class="w"> </span><span class="p">|</span><span class="w"> </span>sudo<span class="w"> </span>apt-key<span class="w"> </span>add<span class="w"> </span>-
</code></pre></div>Linux Virtual Tape Library2011-02-14T15:59:00+01:002011-02-14T15:59:00+01:00rmicheltag:blog.devnu11.net,2011-02-14:/2011/02/linux-virtual-tape-library.html<p>to save for later...</p>
<p><a href="http://sites.google.com/site/linuxvtl2/">mhvtl - A Linux Virtual Tape Library</a></p>
<p>That could be a really nice backup solution.</p>Happy New Year 2011 !2011-01-01T13:54:00+01:002011-01-01T13:54:00+01:00rmicheltag:blog.devnu11.net,2011-01-01:/2011/01/happy-new-year-2011.html<p><img alt="Wish u a very Happy & Prosperous New Year 2011 !" class="aligncenter size-full wp-image-834" height="307" src="http://blog.devnu11.net/wp-content/uploads/happynewyear2011.jpg" title="Wish u a very Happy & Prosperous New Year 2011 !" width="461"><strong>Wish u a very Happy & Prosperous New Year 2011 !</strong></p>ARD (Video)-Podcast Downloader2010-11-24T16:45:00+01:002010-11-24T16:45:00+01:00rmicheltag:blog.devnu11.net,2010-11-24:/2010/11/ard-video-podcast-downloader.html<div class="highlight"><pre><span></span><code><span class="ch">#!/usr/bin/perl -w</span>
<span class="c1">#</span>
<span class="c1"># ARD tagesschau podcast url</span>
<span class="nv">$url</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"http://www.tagesschau.de/export/video-podcast/webl/tagesschau/"</span><span class="p">;</span>
<span class="c1">#</span>
<span class="c1"># wget parameter</span>
<span class="nv">$wgetopts</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"--quiet"</span><span class="p">;</span>
<span class="nv">$targetpath</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"/tmp"</span><span class="p">;</span>
<span class="c1">#</span>
<span class="c1"># Enable verbose output</span>
<span class="nv">$verbose</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<span class="c1">#</span>
<span class="c1">#############################</span>
<span class="k">use</span><span class="w"> </span><span class="nn">XML::Simple</span><span class="p">;</span>
<span class="k">use</span><span class="w"> </span><span class="nn">LWP::Simple</span><span class="p">;</span>
<span class="k">sub</span><span class="w"> </span><span class="nf">output</span><span class="p">{</span>
<span class="w"> </span><span class="k">my</span><span class="w"> </span><span class="nv">$msg</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">shift</span><span class="p">;</span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nv">$verbose</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nb">printf</span><span class="w"> </span><span class="bp">STDERR</span><span class="w"> </span><span class="s">"$msg\n"</span><span class="p">;</span><span class="w"> </span><span class="p">}</span>
<span class="p">}</span>
<span class="nv">$xmlcontent</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">get</span><span class="p">(</span><span class="nv">$url</span><span class="p">);</span>
<span class="k">my</span><span class="w"> </span><span class="nv">$xml …</span></code></pre></div><div class="highlight"><pre><span></span><code><span class="ch">#!/usr/bin/perl -w</span>
<span class="c1">#</span>
<span class="c1"># ARD tagesschau podcast url</span>
<span class="nv">$url</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"http://www.tagesschau.de/export/video-podcast/webl/tagesschau/"</span><span class="p">;</span>
<span class="c1">#</span>
<span class="c1"># wget parameter</span>
<span class="nv">$wgetopts</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"--quiet"</span><span class="p">;</span>
<span class="nv">$targetpath</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"/tmp"</span><span class="p">;</span>
<span class="c1">#</span>
<span class="c1"># Enable verbose output</span>
<span class="nv">$verbose</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<span class="c1">#</span>
<span class="c1">#############################</span>
<span class="k">use</span><span class="w"> </span><span class="nn">XML::Simple</span><span class="p">;</span>
<span class="k">use</span><span class="w"> </span><span class="nn">LWP::Simple</span><span class="p">;</span>
<span class="k">sub</span><span class="w"> </span><span class="nf">output</span><span class="p">{</span>
<span class="w"> </span><span class="k">my</span><span class="w"> </span><span class="nv">$msg</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">shift</span><span class="p">;</span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nv">$verbose</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nb">printf</span><span class="w"> </span><span class="bp">STDERR</span><span class="w"> </span><span class="s">"$msg\n"</span><span class="p">;</span><span class="w"> </span><span class="p">}</span>
<span class="p">}</span>
<span class="nv">$xmlcontent</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">get</span><span class="p">(</span><span class="nv">$url</span><span class="p">);</span>
<span class="k">my</span><span class="w"> </span><span class="nv">$xml</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">XMLin</span><span class="p">(</span><span class="nv">$xmlcontent</span><span class="p">);</span>
<span class="nv">$title</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">$xml</span><span class="o">-></span><span class="p">{</span><span class="n">channel</span><span class="p">}</span><span class="o">-></span><span class="p">{</span><span class="n">item</span><span class="p">}</span><span class="o">-></span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">-></span><span class="p">{</span><span class="n">title</span><span class="p">};</span>
<span class="nv">$url</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">$xml</span><span class="o">-></span><span class="p">{</span><span class="n">channel</span><span class="p">}</span><span class="o">-></span><span class="p">{</span><span class="n">item</span><span class="p">}</span><span class="o">-></span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">-></span><span class="p">{</span><span class="n">enclosure</span><span class="p">}</span><span class="o">-></span><span class="p">{</span><span class="n">url</span><span class="p">};</span>
<span class="nv">$filename</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">$url</span><span class="p">;</span>
<span class="nv">$filename</span><span class="w"> </span><span class="o">=~</span><span class="w"> </span><span class="sr">s/.*\///</span><span class="p">;</span>
<span class="nv">$path</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"$targetpath/$filename"</span><span class="p">;</span>
<span class="n">output</span><span class="p">(</span><span class="s">"Titel:\t$title"</span><span class="p">);</span>
<span class="n">output</span><span class="p">(</span><span class="s">"URL:\t$url"</span><span class="p">);</span>
<span class="n">output</span><span class="p">(</span><span class="s">"File:\t$path\n"</span><span class="p">);</span>
<span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">-</span><span class="n">e</span><span class="w"> </span><span class="s">"$path"</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="n">output</span><span class="p">(</span><span class="s">"$path exists !"</span><span class="p">);</span>
<span class="w"> </span><span class="nb">exit</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="n">output</span><span class="p">(</span><span class="s">"Downloading..."</span><span class="p">);</span>
<span class="w"> </span><span class="nb">system</span><span class="p">(</span><span class="s">"wget"</span><span class="p">,</span><span class="w"> </span><span class="s">"-O"</span><span class="p">,</span><span class="w"> </span><span class="nv">$path</span><span class="p">,</span><span class="w"> </span><span class="nv">$wgetopts</span><span class="p">,</span><span class="w"> </span><span class="nv">$url</span><span class="p">);</span>
<span class="p">}</span>
</code></pre></div>
<p>Its not perfect...feel free to send me feedback/patches/changes.</p>AWS EC2 & S3 free usage2010-11-17T15:12:00+01:002010-11-17T15:12:00+01:00rmicheltag:blog.devnu11.net,2010-11-17:/2010/11/aws-ec2-s3-free-usage.html<p><strong>AWS Free Usage Tier (Per Month):</strong></p>
<ul>
<li>750 hours of Amazon EC2 Linux Micro Instance usage (613 MB of memory and 32-bit and 64-bit platform support) – enough hours to run continuously each month*</li>
<li>750 hours of an Elastic Load Balancer plus 15 GB data processing*</li>
<li>10 GB of Amazon Elastic Block …</li></ul><p><strong>AWS Free Usage Tier (Per Month):</strong></p>
<ul>
<li>750 hours of Amazon EC2 Linux Micro Instance usage (613 MB of memory and 32-bit and 64-bit platform support) – enough hours to run continuously each month*</li>
<li>750 hours of an Elastic Load Balancer plus 15 GB data processing*</li>
<li>10 GB of Amazon Elastic Block Storage, plus 1 million I/Os, 1 GB of snapshot storage, 10,000 snapshot Get Requests and 1,000 snapshot Put Requests*</li>
<li>5 GB of Amazon S3 storage, 20,000 Get Requests, and 2,000 Put Requests*</li>
<li>30 GB per of internet data transfer (15 GB of data transfer “in” and 15 GB of data transfer “out” across all services except Amazon CloudFront)*</li>
<li>25 Amazon SimpleDB Machine Hours and 1 GB of Storage**</li>
<li>100,000 Requests of Amazon Simple Queue Service**</li>
<li>100,000 Requests, 100,000 HTTP notifications and 1,000 email notifications for Amazon Simple Notification Service**</li>
</ul>
<p>[Source: <a href="http://aws.amazon.com/free/">AWS</a> (as of 2010-11-17)]{.small}</p>
<p>Thats perfect for my new project :) <strong>muhaaaa</strong></p>Nagios plugin for JBoss monitoring - check_ajp2010-11-05T10:33:00+01:002010-11-05T10:33:00+01:00rmicheltag:blog.devnu11.net,2010-11-05:/2010/11/nagios-plugin-for-jboss-monitoring-check_ajp.html<p>Released <code>check_ajp</code> v1 - see <a href="https://blog.devnu11.net/extra/check_ajp.gzip">download</a></p>
<p><strong><em>md5sum:</em></strong> <code>bfd5c249a1f44123062a0485c3af524c</code></p>
<p><strong><em>Usage:</em></strong> <code>./check_ajp --app 10.10.10.10</code></p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>./check_ajp<span class="w"> </span>--app<span class="w"> </span><span class="m">10</span>.28.10.80<span class="p">;</span><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="s2">"return: </span><span class="nv">$?</span><span class="s2">"</span>
OK<span class="w"> </span>-<span class="w"> </span>AJP<span class="w"> </span>-<span class="w"> </span><span class="m">0</span>.00294<span class="w"> </span>seconds<span class="w"> </span>response<span class="w"> </span>time<span class="p">|</span><span class="nv">time</span><span class="o">=</span><span class="m">0</span>.002943s<span class="p">;;;</span><span class="m">0</span>.000000<span class="p">;</span><span class="m">10</span>.000000
<span class="k">return</span>:<span class="w"> </span><span class="m">0</span>
</code></pre></div>
<table>
<thead>
<tr>
<th>default</th>
<th style="text-align: center;">setting</th>
</tr>
</thead>
<tbody>
<tr>
<td>port</td>
<td style="text-align: center;">8009</td>
</tr>
<tr>
<td>warning</td>
<td style="text-align: center;">1.5 seconds</td>
</tr>
<tr>
<td>critical</td>
<td style="text-align: center;">3 seconds</td>
</tr>
<tr>
<td>timeout …</td></tr></tbody></table><p>Released <code>check_ajp</code> v1 - see <a href="https://blog.devnu11.net/extra/check_ajp.gzip">download</a></p>
<p><strong><em>md5sum:</em></strong> <code>bfd5c249a1f44123062a0485c3af524c</code></p>
<p><strong><em>Usage:</em></strong> <code>./check_ajp --app 10.10.10.10</code></p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>./check_ajp<span class="w"> </span>--app<span class="w"> </span><span class="m">10</span>.28.10.80<span class="p">;</span><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="s2">"return: </span><span class="nv">$?</span><span class="s2">"</span>
OK<span class="w"> </span>-<span class="w"> </span>AJP<span class="w"> </span>-<span class="w"> </span><span class="m">0</span>.00294<span class="w"> </span>seconds<span class="w"> </span>response<span class="w"> </span>time<span class="p">|</span><span class="nv">time</span><span class="o">=</span><span class="m">0</span>.002943s<span class="p">;;;</span><span class="m">0</span>.000000<span class="p">;</span><span class="m">10</span>.000000
<span class="k">return</span>:<span class="w"> </span><span class="m">0</span>
</code></pre></div>
<table>
<thead>
<tr>
<th>default</th>
<th style="text-align: center;">setting</th>
</tr>
</thead>
<tbody>
<tr>
<td>port</td>
<td style="text-align: center;">8009</td>
</tr>
<tr>
<td>warning</td>
<td style="text-align: center;">1.5 seconds</td>
</tr>
<tr>
<td>critical</td>
<td style="text-align: center;">3 seconds</td>
</tr>
<tr>
<td>timeout</td>
<td style="text-align: center;">10 seconds</td>
</tr>
</tbody>
</table>
<p>To overwrite the defaults, see the example below.</p>
<p><code>./check_ajp --app 10.10.10.10 --port 1234 --warn 1 --crit 2 --timeout 2</code></p>jstat - jvm memory stats2010-10-27T08:28:00+02:002010-10-27T08:28:00+02:00rmicheltag:blog.devnu11.net,2010-10-27:/2010/10/jstat-jvm-memory-stats.html<p>/usr/java/jdk1.5.0_22/bin/jstat -gcutil 18703 1s 10</p>
<p>gcutil = Summary of Garbage Collection Statistics (mandatory)<br>
18703 = process id (mandatory)<br>
1s = refresh interval (optional)<br>
10 = counter (optional)</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>/usr/java/jdk1.5.0_22/bin/jstat<span class="w"> </span>-gcutil<span class="w"> </span><span class="m">25532</span><span class="w"> </span>1s<span class="w"> </span><span class="m">10</span>
<span class="w"> </span>S0<span class="w"> </span>S1<span class="w"> </span>E<span class="w"> </span>O<span class="w"> </span>P<span class="w"> </span>YGC<span class="w"> </span>YGCT<span class="w"> </span>FGC<span class="w"> </span>FGCT<span class="w"> </span>GCT …</code></pre></div><p>/usr/java/jdk1.5.0_22/bin/jstat -gcutil 18703 1s 10</p>
<p>gcutil = Summary of Garbage Collection Statistics (mandatory)<br>
18703 = process id (mandatory)<br>
1s = refresh interval (optional)<br>
10 = counter (optional)</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>/usr/java/jdk1.5.0_22/bin/jstat<span class="w"> </span>-gcutil<span class="w"> </span><span class="m">25532</span><span class="w"> </span>1s<span class="w"> </span><span class="m">10</span>
<span class="w"> </span>S0<span class="w"> </span>S1<span class="w"> </span>E<span class="w"> </span>O<span class="w"> </span>P<span class="w"> </span>YGC<span class="w"> </span>YGCT<span class="w"> </span>FGC<span class="w"> </span>FGCT<span class="w"> </span>GCT<span class="w"> </span>
<span class="w"> </span><span class="m">0</span>.00<span class="w"> </span><span class="m">0</span>.00<span class="w"> </span><span class="m">71</span>.36<span class="w"> </span><span class="m">35</span>.59<span class="w"> </span><span class="m">72</span>.25<span class="w"> </span><span class="m">39</span><span class="w"> </span><span class="m">6</span>.195<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="m">0</span>.440<span class="w"> </span><span class="m">6</span>.635
<span class="w"> </span><span class="m">0</span>.00<span class="w"> </span><span class="m">0</span>.00<span class="w"> </span><span class="m">72</span>.22<span class="w"> </span><span class="m">35</span>.59<span class="w"> </span><span class="m">72</span>.25<span class="w"> </span><span class="m">39</span><span class="w"> </span><span class="m">6</span>.195<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="m">0</span>.440<span class="w"> </span><span class="m">6</span>.635
<span class="w"> </span><span class="m">0</span>.00<span class="w"> </span><span class="m">0</span>.00<span class="w"> </span><span class="m">78</span>.39<span class="w"> </span><span class="m">35</span>.59<span class="w"> </span><span class="m">72</span>.25<span class="w"> </span><span class="m">39</span><span class="w"> </span><span class="m">6</span>.195<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="m">0</span>.440<span class="w"> </span><span class="m">6</span>.635
<span class="w"> </span><span class="m">0</span>.00<span class="w"> </span><span class="m">0</span>.00<span class="w"> </span><span class="m">88</span>.32<span class="w"> </span><span class="m">35</span>.59<span class="w"> </span><span class="m">72</span>.25<span class="w"> </span><span class="m">39</span><span class="w"> </span><span class="m">6</span>.195<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="m">0</span>.440<span class="w"> </span><span class="m">6</span>.635
<span class="w"> </span><span class="m">0</span>.00<span class="w"> </span><span class="m">0</span>.00<span class="w"> </span><span class="m">93</span>.77<span class="w"> </span><span class="m">35</span>.59<span class="w"> </span><span class="m">72</span>.25<span class="w"> </span><span class="m">39</span><span class="w"> </span><span class="m">6</span>.195<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="m">0</span>.440<span class="w"> </span><span class="m">6</span>.635
<span class="w"> </span><span class="m">0</span>.00<span class="w"> </span><span class="m">0</span>.00<span class="w"> </span><span class="m">97</span>.66<span class="w"> </span><span class="m">35</span>.59<span class="w"> </span><span class="m">72</span>.25<span class="w"> </span><span class="m">39</span><span class="w"> </span><span class="m">6</span>.195<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="m">0</span>.440<span class="w"> </span><span class="m">6</span>.635
<span class="w"> </span><span class="m">0</span>.00<span class="w"> </span><span class="m">0</span>.00<span class="w"> </span><span class="m">1</span>.90<span class="w"> </span><span class="m">36</span>.45<span class="w"> </span><span class="m">72</span>.25<span class="w"> </span><span class="m">40</span><span class="w"> </span><span class="m">6</span>.357<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="m">0</span>.440<span class="w"> </span><span class="m">6</span>.797
<span class="w"> </span><span class="m">0</span>.00<span class="w"> </span><span class="m">0</span>.00<span class="w"> </span><span class="m">6</span>.94<span class="w"> </span><span class="m">36</span>.45<span class="w"> </span><span class="m">72</span>.25<span class="w"> </span><span class="m">40</span><span class="w"> </span><span class="m">6</span>.357<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="m">0</span>.440<span class="w"> </span><span class="m">6</span>.797
<span class="w"> </span><span class="m">0</span>.00<span class="w"> </span><span class="m">0</span>.00<span class="w"> </span><span class="m">9</span>.40<span class="w"> </span><span class="m">36</span>.45<span class="w"> </span><span class="m">72</span>.25<span class="w"> </span><span class="m">40</span><span class="w"> </span><span class="m">6</span>.357<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="m">0</span>.440<span class="w"> </span><span class="m">6</span>.797
<span class="w"> </span><span class="m">0</span>.00<span class="w"> </span><span class="m">0</span>.00<span class="w"> </span><span class="m">9</span>.57<span class="w"> </span><span class="m">36</span>.45<span class="w"> </span><span class="m">72</span>.25<span class="w"> </span><span class="m">40</span><span class="w"> </span><span class="m">6</span>.357<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="m">0</span>.440<span class="w"> </span><span class="m">6</span>.797
</code></pre></div>
<p>event during the 6th and the 7th sample<br>
collection took 0.162s (6.357s-6.195s)<br>
increasing utilization (0.86%) of old space</p>IPv6 Adressen2010-10-26T11:55:00+02:002010-10-26T11:55:00+02:00rmicheltag:blog.devnu11.net,2010-10-26:/2010/10/ipv6-adresse.html<p>Bahn-Streiks sind was tolles...da schafft man was :)</p>
<p><strong>Aufbau einer IPv6 Adresse</strong></p>
<p>128 Bit insgesamt. Die ersten 64-Bit sind für das Subnetz-Präfix reserviert, gefolgt von den letzten 64-Bit für den Host.</p>
<p><code>nnnn:nnnn:nnnn:nnnn:hhhh:hhhh:hhhh:hhhh</code></p>
<p>Jeder Block ist 16-Bit lang. Nullen am Anfang eines Blockes können …</p><p>Bahn-Streiks sind was tolles...da schafft man was :)</p>
<p><strong>Aufbau einer IPv6 Adresse</strong></p>
<p>128 Bit insgesamt. Die ersten 64-Bit sind für das Subnetz-Präfix reserviert, gefolgt von den letzten 64-Bit für den Host.</p>
<p><code>nnnn:nnnn:nnnn:nnnn:hhhh:hhhh:hhhh:hhhh</code></p>
<p>Jeder Block ist 16-Bit lang. Nullen am Anfang eines Blockes können gekürzt werden z.B.</p>
<p><code>2001:db8:0900:085a:0000:0000:0000:0002</code></p>
<p>würde also</p>
<p><code>2001:db8:900:85a::2</code></p>
<p>ergeben. Zusammen hängende Blöcke von Nullen können <strong>einmal</strong> ersatzlos gestrichen werden und müssen durch einen <strong>::</strong> signalisiert werden. Andere Null-Blocks können als 0 geschrieben werden.</p>
<p>Beispiel:</p>
<p><code>2001:db8:0000:085a:0001:0000:0000:0002 => 2001:db8:0:085a:1::2</code></p>
<p>IPv6 Adressen werden in HEX geschrieben! Die o.g. Adresse würde im Dualsystem so aussehen</p>
<p><code>00100000 00000001:00001101 10111000:00001001 00000000::000000000 00000010</code></p>
<p><strong>Arten von Adressen (unvollständig)</strong></p>
<p>Die default-Route wird idR an <strong>2000::/3</strong> gerichtet. Das ist der globale Unicast und wird im Internet geroutet (<a href="http://www.ietf.org/rfc/rfc4291.txt">RFC4291</a>).</p>
<p>0:0:0:0:0:0:0:0 = ::/128 entspricht 0.0.0.0 unter IPv4.</p>
<p>0:0:0:0:0:0:0:1 = ::1/128 entspricht 127.0.0.1 also localhost unter IPv4.</p>
<p>FF00::/8 sind Multicast Adressen - siehe <a href="http://www.iana.org/assignments/ipv6-multicast-addresses">Multicast @ IANA</a>.</p>Microwave chocolatecake2010-10-22T22:14:00+02:002010-10-22T22:14:00+02:00rmicheltag:blog.devnu11.net,2010-10-22:/2010/10/microwave-chocolatecake.html<p>cup = \~200ml</p>
<p>1 cup sugar<br>
2 eggs<br>
1 cup flour<br>
1 cup milk<br>
1/2 cup chocolate power<br>
1/4 cup vegetable/sunflower oil<br>
1 tsp/teaspoon baking powder</p>
<p>at first combine the eggs and the sugar...</p>
<p>700w \~ 5-6min</p>
<p>mug 2min\@700W<br>
cup 3-4min\@700W</p>Create a shared disk for VMware ESX guests2010-10-11T10:24:00+02:002010-10-11T10:24:00+02:00rmicheltag:blog.devnu11.net,2010-10-11:/2010/10/create-a-shared-disk-for-vmware-esx-guests.html<p>To create a shared disk between two or more VMs, login into one of your ESX hosts and create a disk image.</p>
<div class="highlight"><pre><span></span><code><span class="nb">cd</span><span class="w"> </span>/vmfs/volumes/#volume-name#/#vm-name#/<span class="p">;</span>
vmkfstools<span class="w"> </span>-d<span class="w"> </span>thick<span class="w"> </span>-a<span class="w"> </span>lsilogic<span class="w"> </span>-c<span class="w"> </span>50G<span class="w"> </span>shareddisk.vmdk<span class="p">;</span>
</code></pre></div>
<p>Add the new hardrive to the guest(s) and select a new SCSI bus …</p><p>To create a shared disk between two or more VMs, login into one of your ESX hosts and create a disk image.</p>
<div class="highlight"><pre><span></span><code><span class="nb">cd</span><span class="w"> </span>/vmfs/volumes/#volume-name#/#vm-name#/<span class="p">;</span>
vmkfstools<span class="w"> </span>-d<span class="w"> </span>thick<span class="w"> </span>-a<span class="w"> </span>lsilogic<span class="w"> </span>-c<span class="w"> </span>50G<span class="w"> </span>shareddisk.vmdk<span class="p">;</span>
</code></pre></div>
<p>Add the new hardrive to the guest(s) and select a new SCSI bus (like SCSI 2:0). VMware create a new SCSI controller. Set <strong>SCSI Bus Sharing</strong> = <strong>Physical</strong> or <strong>Virtual</strong> and have fun :)</p>Apache Tomcat & logrotate2010-08-31T17:49:00+02:002010-08-31T17:49:00+02:00rmicheltag:blog.devnu11.net,2010-08-31:/2010/08/apache-tomcat-logrotate.html<p>Some linux distribution are shiped without a config for the <strong>catalina.out</strong> (Tomcat application server) ;)</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>cat<span class="w"> </span>/etc/logrotate.d/tomcat
/var/log/tomcat/base/catalina.out<span class="w"> </span><span class="o">{</span>
<span class="w"> </span>compress
<span class="w"> </span>copytruncate
<span class="w"> </span>create<span class="w"> </span><span class="m">644</span><span class="w"> </span>tomcat<span class="w"> </span>tomcat
<span class="w"> </span>rotate<span class="w"> </span><span class="m">30</span>
<span class="w"> </span>size<span class="w"> </span>4M
<span class="o">}</span>
</code></pre></div>
<p>The <strong>catalina.out</strong> will be rotated after 4 mb and stored for 30 days …</p><p>Some linux distribution are shiped without a config for the <strong>catalina.out</strong> (Tomcat application server) ;)</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>cat<span class="w"> </span>/etc/logrotate.d/tomcat
/var/log/tomcat/base/catalina.out<span class="w"> </span><span class="o">{</span>
<span class="w"> </span>compress
<span class="w"> </span>copytruncate
<span class="w"> </span>create<span class="w"> </span><span class="m">644</span><span class="w"> </span>tomcat<span class="w"> </span>tomcat
<span class="w"> </span>rotate<span class="w"> </span><span class="m">30</span>
<span class="w"> </span>size<span class="w"> </span>4M
<span class="o">}</span>
</code></pre></div>
<p>The <strong>catalina.out</strong> will be rotated after 4 mb and stored for 30 days (/var/log/tomcat/base/catalina.out.1; /var/log/tomcat/base/catalina.out.2.gz and so on)</p>Linux routing basics2010-08-27T15:23:00+02:002010-08-27T15:23:00+02:00rmicheltag:blog.devnu11.net,2010-08-27:/2010/08/linux-routing-basics.html<p>You getting from your ISP a subnet like this 172.30.26.16/28,<br>
and your router has the ip 172.30.26.17 !</p>
<p>You need to enable the ip forwarding in the kernel</p>
<div class="highlight"><pre><span></span><code>sysctl<span class="w"> </span>-w<span class="w"> </span>net.ipv4.ip_forward<span class="o">=</span><span class="m">1</span>
</code></pre></div>
<p>And we need to enable proxy arp! This is necessary …</p><p>You getting from your ISP a subnet like this 172.30.26.16/28,<br>
and your router has the ip 172.30.26.17 !</p>
<p>You need to enable the ip forwarding in the kernel</p>
<div class="highlight"><pre><span></span><code>sysctl<span class="w"> </span>-w<span class="w"> </span>net.ipv4.ip_forward<span class="o">=</span><span class="m">1</span>
</code></pre></div>
<p>And we need to enable proxy arp! This is necessary because your router must answer all arp request for hosts other than itself ;)</p>
<div class="highlight"><pre><span></span><code>sysctl<span class="w"> </span>-w<span class="w"> </span>net.ipv4.conf.eth0.proxy_arp<span class="o">=</span><span class="m">1</span>
sysctl<span class="w"> </span>-w<span class="w"> </span>net.ipv4.conf.eth1.proxy_arp<span class="o">=</span><span class="m">1</span>
</code></pre></div>
<p>Edit your <strong>/etc/sysctl.conf</strong> !</p>
<div class="highlight"><pre><span></span><code>net.ipv4.ip_forward<span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">1</span>
net.ipv4.conf.eth0.proxy_arp<span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">1</span>
net.ipv4.conf.eth1.proxy_arp<span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">1</span>
</code></pre></div>
<p>If your router has no external ip on the internal nic, you need to setup routes like</p>
<div class="highlight"><pre><span></span><code>route<span class="w"> </span>add<span class="w"> </span>-host<span class="w"> </span><span class="m">172</span>.30.26.20<span class="w"> </span>gw<span class="w"> </span><span class="m">192</span>.168.10.20<span class="w"> </span>eth1
</code></pre></div>
<p><img alt="linux-routing" src="https://blog.devnu11.net/images/linux-routing.png" title="Overview"></p>Ubuntu PHP hardening with Suhosin2010-07-28T15:37:00+02:002010-07-28T15:37:00+02:00rmicheltag:blog.devnu11.net,2010-07-28:/2010/07/ubuntu-php-hardening-with-suhosin.html<p>Ubuntu includes the php suhosin patches....</p>
<p>Install suhosin extension</p>
<div class="highlight"><pre><span></span><code>aptitude<span class="w"> </span>install<span class="w"> </span>php5-suhosin
</code></pre></div>
<p><strong>/etc/php5/{apache2,cli,cgi}/php.ini</strong></p>
<div class="highlight"><pre><span></span><code><span class="x">; suhosin parameters</span>
<span class="x">suhosin.executor.include.max_traversal = 4</span>
<span class="x">suhosin.executor.disable_eval = On</span>
<span class="x">suhosin.executor.disable_emodifier = On</span>
<span class="x">suhosin.mail.protect = 2</span>
<span class="x">suhosin.sql.bailout_on_error = On</span>
</code></pre></div>
<p>Restart apache</p>
<div class="highlight"><pre><span></span><code>service<span class="w"> </span>apache2<span class="w"> </span>restart
</code></pre></div>
<p>Sometimes it could …</p><p>Ubuntu includes the php suhosin patches....</p>
<p>Install suhosin extension</p>
<div class="highlight"><pre><span></span><code>aptitude<span class="w"> </span>install<span class="w"> </span>php5-suhosin
</code></pre></div>
<p><strong>/etc/php5/{apache2,cli,cgi}/php.ini</strong></p>
<div class="highlight"><pre><span></span><code><span class="x">; suhosin parameters</span>
<span class="x">suhosin.executor.include.max_traversal = 4</span>
<span class="x">suhosin.executor.disable_eval = On</span>
<span class="x">suhosin.executor.disable_emodifier = On</span>
<span class="x">suhosin.mail.protect = 2</span>
<span class="x">suhosin.sql.bailout_on_error = On</span>
</code></pre></div>
<p>Restart apache</p>
<div class="highlight"><pre><span></span><code>service<span class="w"> </span>apache2<span class="w"> </span>restart
</code></pre></div>
<p>Sometimes it could be necessary to set <strong>suhosin.session.encrypt</strong> to <strong>off</strong> for some login scripts.</p>Postfix as relayhost with SASL auth2010-07-21T14:35:00+02:002010-07-21T14:35:00+02:00rmicheltag:blog.devnu11.net,2010-07-21:/2010/07/postfix-as-relayhost-with-sasl-auth.html<p><strong>Client configuration (notebook, workstation what ever)</strong></p>
<ol>
<li>Edit your <code>/etc/postfix/main.cf</code></li>
<li>Create your passwordmap - <code>/etc/postfix/sasl_passwords</code></li>
<li>Run postmap for <code>/etc/postfix/sasl_passwords</code></li>
</ol>
<p><strong>Server configuration</strong></p>
<ol>
<li>Nothing if you have already a working mail server. That the user (<code>/etc/postfix/sasl_passwords</code>) must exists on the server is plausible ? Check your …</li></ol><p><strong>Client configuration (notebook, workstation what ever)</strong></p>
<ol>
<li>Edit your <code>/etc/postfix/main.cf</code></li>
<li>Create your passwordmap - <code>/etc/postfix/sasl_passwords</code></li>
<li>Run postmap for <code>/etc/postfix/sasl_passwords</code></li>
</ol>
<p><strong>Server configuration</strong></p>
<ol>
<li>Nothing if you have already a working mail server. That the user (<code>/etc/postfix/sasl_passwords</code>) must exists on the server is plausible ? Check your <code>smtpd_*_restrictions</code> on the mail server if the client won't use sasl :)</li>
</ol>Lenny Linux rockz...2010-06-30T22:36:00+02:002010-06-30T22:36:00+02:00rmicheltag:blog.devnu11.net,2010-06-30:/2010/06/lenny-linux-rockz.html<p><strong>Watch it !</strong></p>
<p>[http://www.youtube.com/watch?v=6gbNZK60Xe4]{style="text-decoration: line-through;"}</p>
<p>YouTube - "This video is no longer available due to a copyright claim by Alley Music Corp.." - :(</p>
<p>http://www.google.com/search?q=Java4Ever&hl=en&tbs=vid:1,srcf:H4sIAAAAAAAAAB3IQQ4AEAwF0dvYSNyppREpfoIu3J5092bihR1jSRkjKJbYdv6t5irU-h04DdMbvJPWQKUSsyx_1D2e3mPVGAAAA&prmd=v&source=lnt&sa=X&ei=SkBETOndKs384Aa93PGiDg …</p><p><strong>Watch it !</strong></p>
<p>[http://www.youtube.com/watch?v=6gbNZK60Xe4]{style="text-decoration: line-through;"}</p>
<p>YouTube - "This video is no longer available due to a copyright claim by Alley Music Corp.." - :(</p>
<p>http://www.google.com/search?q=Java4Ever&hl=en&tbs=vid:1,srcf:H4sIAAAAAAAAAB3IQQ4AEAwF0dvYSNyppREpfoIu3J5092bihR1jSRkjKJbYdv6t5irU-h04DdMbvJPWQKUSsyx_1D2e3mPVGAAAA&prmd=v&source=lnt&sa=X&ei=SkBETOndKs384Aa93PGiDg&ved=0CCIQp</p>
<p>http://www.youtube.com/watch?v=kLO1djacsfg</p>z-push, imap server and *irony* a user-friendly Debian whatever *irony*2010-05-09T12:47:00+02:002010-05-09T12:47:00+02:00rmicheltag:blog.devnu11.net,2010-05-09:/2010/05/z-push-imap-server-and-irony-a-user-friendly-debian-whatever-irony.html<p>If you want to use z-push with your imap server (which requires php5-imap) you must add to following line to you <code>/etc/php5/apache2/conf.d/imap.ini</code> file</p>
<div class="highlight"><pre><span></span><code>#<span class="w"> </span><span class="nv">configuration</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="nv">php</span><span class="w"> </span><span class="nv">IMAP</span><span class="w"> </span><span class="nv">module</span>
<span class="nv">extension</span><span class="o">=</span><span class="nv">imap</span>.<span class="nv">so</span>
</code></pre></div>
<p>Why is that not set Debian ?</p>Nr. 5 lebt...2010-04-11T11:39:00+02:002010-04-11T11:39:00+02:00rmicheltag:blog.devnu11.net,2010-04-11:/2010/04/nr-5-lebt.html<p>[caption id="attachment_491" align="aligncenter" width="300" caption="Nr. 5 lebt !"]<a href="http://blog.devnu11.net/wp-content/uploads/IMG_0070_web.jpg"><img alt="" class="size-medium wp-image-491" height="185" src="http://blog.devnu11.net/wp-content/uploads/IMG_0070_web-300x185.jpg" title="mk_quadro" width="300"></a>[/caption]</p>
<p>Nach meinem Absturz vor gut 2 Wochen, konnte ich heute endlich mal wieder fliegen :D Natürlich mit GPS, sonst hätte ich auch nicht das Foto machen können.<!--more--></p>
<p>Er ist nicht der schönste, aber funktionell ! Im Moment probiere ich …</p><p>[caption id="attachment_491" align="aligncenter" width="300" caption="Nr. 5 lebt !"]<a href="http://blog.devnu11.net/wp-content/uploads/IMG_0070_web.jpg"><img alt="" class="size-medium wp-image-491" height="185" src="http://blog.devnu11.net/wp-content/uploads/IMG_0070_web-300x185.jpg" title="mk_quadro" width="300"></a>[/caption]</p>
<p>Nach meinem Absturz vor gut 2 Wochen, konnte ich heute endlich mal wieder fliegen :D Natürlich mit GPS, sonst hätte ich auch nicht das Foto machen können.<!--more--></p>
<p>Er ist nicht der schönste, aber funktionell ! Im Moment probiere ich 12" Propeller mit 3S (11.1V) und 4S (14.8V) Akkus aus. Die Kombination mit 12" und 3S ist auch bei Wind sehr nett. 12" und 4S geht, aber der Wind nahm immer mehr zu leider, um weiter zu testen.</p>
<p>[caption id="attachment_494" align="aligncenter" width="300" caption="Schrott."]<a href="http://blog.devnu11.net/wp-content/uploads/IMG_0043_web.jpg"><img alt="" class="size-medium wp-image-494" height="255" src="http://blog.devnu11.net/wp-content/uploads/IMG_0043_web-300x255.jpg" title="mitnehmer" width="300"></a>[/caption]</p>
<p>Leider sind beim letzten Absturz ein paar Teile kaputt gegangen, u.a. meine selbst gefertigten Propellermitnehmer. Nun sind Mitnehmer aus dem Shop drauf und noch 2 als Ersatz ;) Mal gucken wie lange die halten. Da mich das MK-Fieber jetzt komplett infiziert hat, werd ich bestimmt in den nächsten Wochen noch einen bauen, aber diesmal ein X8 [<a href="http://forum.mikrokopter.com/topic-7972-1.html">1</a>], damit ich auch eine Fotoausrüstung mit einer gewissen Ausfallsicherheit transportieren kann. Hier können bis zu 3 ( max. 4 ) Propeller/Motoren/Regler ausfallen - vorausgesetzt die Payload ist nicht zu hoch. Aber die Kamera wiegt nur etwa 200g (eine kleine DSLR etwa 500g) womit ein Quadro keine Probleme hat. Ohne Sicherheit sollten 1-2kg möglich sein. Der große Vorteil für mich ist die kompakte Bauart. Muss ich mir nur noch überlegen wie ich 2 Motoren übereinander montieren kann auf einem 10x10x1 Aluprofil ;)</p>Mikrokopter / Quadrokopter - Rahmen (und noch mehr)2010-02-27T02:03:00+01:002010-02-27T02:03:00+01:00rmicheltag:blog.devnu11.net,2010-02-27:/2010/02/mikrokopter-quadrokopter-rahmen-und-noch-mehr.html<p>Quadro was ? Wer keine Idee hat was das überhaupt ist - <a href="http://www.mikrokopter.de" title="Mikrokopter">MK</a> / <a href="http://www.uavp.ch" title="UAVP">UAVP</a> oder auch in der <a href="http://de.wikipedia.org/wiki/Quadrocopter" title="Quadrokopter @ Wikipedia">Wikipedia</a> (hier garantiere ich nicht, wie lange der Artikel noch da ist ;) )</p>
<p>Da ich beruflich viel unterwegs bin, und abends teilweise zuviel Zeit habe (und das Internet einfach zu klein ist) musste eine Beschäftigung …</p><p>Quadro was ? Wer keine Idee hat was das überhaupt ist - <a href="http://www.mikrokopter.de" title="Mikrokopter">MK</a> / <a href="http://www.uavp.ch" title="UAVP">UAVP</a> oder auch in der <a href="http://de.wikipedia.org/wiki/Quadrocopter" title="Quadrokopter @ Wikipedia">Wikipedia</a> (hier garantiere ich nicht, wie lange der Artikel noch da ist ;) )</p>
<p>Da ich beruflich viel unterwegs bin, und abends teilweise zuviel Zeit habe (und das Internet einfach zu klein ist) musste eine Beschäftigung her. Preislich hat mich der MK immer abgeschreckt...aber naja ;) Also fing ich mit dem Rahmen an. Alu-Vierkant 10mm und als Centerplate 2x 100x100x1 aus Hartpapier. Die Centerplate ist auch was geworden, nur leider der Rahmen irgendwie nicht :( Die Bohrungen für die Centerplate liegen leider nicht genau übereinander. Kommt davon wenn man versucht das mit der Hand zu bohren. Der Neubau ist schon in Planung.</p>
<p>Weil ich es als zu einfach empfand, alles bestück zu bestellen, habe ich alle vier Bl-Ctrl selber gebaut - mit Erfolg ! Lediglich ein Atmega8 musste dran glauben ;)</p>
<p>Momentan bastel ich gerade eine Akkuhalterung. Das Problem ist, meine Sternverteiler liegen unten, also einfach Klettband nehmen geht nicht, weil ich gut 1cm überbrücken muss. Morgen mal zum großen C gehen, und schauen was dort alles geht. Zumal mir auch noch Platinen für die KSQ fehlen.</p>
<p>Beim Testen der Bl-Ctrl, war ich beeindruckt von dem Schub, welchen schon ein Motor schafft. Eigentlich kann ich es nicht erwarten endlich die FC 2.0 zukaufen und endlich zu fliegen. Aber noch sind nicht alle Details fertig.</p>
<p>Hat jemand zufällig eine Fräse (Raum Köln bzw. Rügen ?)</p>
<p>[Bilder vom jetzigen Rahmen, mit Motoren und den BL-Ctrls kommen.]</p>How to delete a command from the bash history / Hide an command from the bash history2010-02-14T13:00:00+01:002010-02-14T13:00:00+01:00rmicheltag:blog.devnu11.net,2010-02-14:/2010/02/how-to-delete-a-command-from-the-bash-history-hide-an-command-from-the-bash-history.html<p><strong>Hide an command from the bash history:</strong><br>
Start a terminal and try</p>
<div class="highlight"><pre><span></span><code>wget<span class="w"> </span>user:passwd@ftp.example.com/secret.tar.gz<span class="p">;</span><span class="w"> </span><span class="nb">kill</span><span class="w"> </span>-9<span class="w"> </span><span class="nv">$$</span><span class="p">;</span>
</code></pre></div>
<p>Now you can check your history ;)</p>
<p><strong>How to delete a command from the bash history:</strong><br>
If you have already such an entry, you can use history to …</p><p><strong>Hide an command from the bash history:</strong><br>
Start a terminal and try</p>
<div class="highlight"><pre><span></span><code>wget<span class="w"> </span>user:passwd@ftp.example.com/secret.tar.gz<span class="p">;</span><span class="w"> </span><span class="nb">kill</span><span class="w"> </span>-9<span class="w"> </span><span class="nv">$$</span><span class="p">;</span>
</code></pre></div>
<p>Now you can check your history ;)</p>
<p><strong>How to delete a command from the bash history:</strong><br>
If you have already such an entry, you can use history to delete it.</p>
<div class="highlight"><pre><span></span><code><span class="nb">history</span>
<span class="c1"># [...]</span>
<span class="c1"># 849 uname -a</span>
<span class="c1"># 850 wget user:passwd@ftp.example.com/secret.tar.gz</span>
<span class="c1"># 851 ping blog.devnu11.net</span>
<span class="c1"># [...]</span>
</code></pre></div>
<p>Now you can delete your history with <code>history -d 850</code> this line.</p>
<div class="highlight"><pre><span></span><code><span class="nb">history</span><span class="w"> </span>-d<span class="w"> </span><span class="m">850</span>
</code></pre></div>
<p>And see...</p>
<div class="highlight"><pre><span></span><code><span class="nb">history</span>
<span class="c1"># [...]</span>
<span class="c1"># 849 uname -a</span>
<span class="c1"># 850 history</span>
<span class="c1"># 851 ping blog.devnu11.net</span>
<span class="c1"># [...]</span>
</code></pre></div>
<p>Or simply add a blank before the command ;)</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>wget<span class="w"> </span>user:passwd@ftp.example.com/secret.tar.gz
</code></pre></div>SLES11, SLES10 SP3, grml64 on HP DL360-G62010-02-11T17:37:00+01:002010-02-11T17:37:00+01:00rmicheltag:blog.devnu11.net,2010-02-11:/2010/02/sles11-sles10-sp3-grml64-on-hp-dl360-g6.html<p>Wozu gibt es zertifizierte Hardware(listen), wenns dann doch nicht geht ?</p>
<p>Ein HP DL360-G6 mit einer NetXtreme BCM5709 Netzwerkkarte soll unter SLES10 (SP3) und SLES11 (GM) funktionieren (Quelle: HP und Novell). Aber irgendwie gehts dann doch nicht :( Selbst mit dem HP ProLiant Support Pack (Version 8.30) ging es nicht …</p><p>Wozu gibt es zertifizierte Hardware(listen), wenns dann doch nicht geht ?</p>
<p>Ein HP DL360-G6 mit einer NetXtreme BCM5709 Netzwerkkarte soll unter SLES10 (SP3) und SLES11 (GM) funktionieren (Quelle: HP und Novell). Aber irgendwie gehts dann doch nicht :( Selbst mit dem HP ProLiant Support Pack (Version 8.30) ging es nicht. Auch die md5sum vom bnx2.ko Modul, die HP angibt, stimmt.</p>
<p>Als letzter Versuch war dann noch grml64 2009.10 (x86_64 & i386) dran, nur leider ging es hier auch nicht. Alle melden nur "Firmware not running. Aborting..." Super! Ich muss leider zugeben, ich konnte auch nicht alles testen z.B. Firmware patchen konnte ich nicht, da es nur eine Leihgabe aus einem anderen Fachbereich war.</p>
<p>Mal sehen wann ich wieder eine in die Finger bekomme....</p>Don't try this at home - root shell Russian roulette2010-02-11T11:57:00+01:002010-02-11T11:57:00+01:00rmicheltag:blog.devnu11.net,2010-02-11:/2010/02/dont-try-this-at-home-root-shell-russian-roulette.html<p><strong>Don't try this at home!</strong></p>
<div class="highlight"><pre><span></span><code><span class="o">[</span><span class="w"> </span>$<span class="o">[</span><span class="nv">$RANDOM</span>%6<span class="o">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="w"> </span><span class="o">]</span><span class="w"> </span><span class="o">||</span><span class="w"> </span>rm<span class="w"> </span>-rf<span class="w"> </span>/<span class="p">;</span>
</code></pre></div>
<p><strong>Unless you really know what you are doing.</strong></p>ZTE MF637 unter Ubuntu2010-01-09T22:49:00+01:002010-01-09T22:49:00+01:00rmicheltag:blog.devnu11.net,2010-01-09:/2010/01/zte-mf637-unter-ubuntu.html<p>Um den ZTE MF637 oder auch T-Mobile W'n'W Stick Fusion unter Ubuntu zum laufen zubekommen, braucht man den Stick (leider) nur einmal auf einem Windows installieren - sprich die Treiber, und sich dann via Hyperterminal auf den Diagnose Port zuverbinden und folgendes Kommando ausführen:</p>
<div class="highlight"><pre><span></span><code>AT+ZCDRUN<span class="o">=</span><span class="m">8</span>
</code></pre></div>
<p>Damit wird der Autostart …</p><p>Um den ZTE MF637 oder auch T-Mobile W'n'W Stick Fusion unter Ubuntu zum laufen zubekommen, braucht man den Stick (leider) nur einmal auf einem Windows installieren - sprich die Treiber, und sich dann via Hyperterminal auf den Diagnose Port zuverbinden und folgendes Kommando ausführen:</p>
<div class="highlight"><pre><span></span><code>AT+ZCDRUN<span class="o">=</span><span class="m">8</span>
</code></pre></div>
<p>Damit wird der Autostart vom Stick, also das virtuelle CD-ROM am Anfang, deaktiviert !</p>
<p>Geht mit 9.08, 9.10 usw.</p>Happy New Year to all my friends !2010-01-01T00:01:00+01:002010-01-01T00:01:00+01:00rmicheltag:blog.devnu11.net,2010-01-01:/2010/01/happy-new-year-to-all-my-friends.html<p><strong></p>
<p><a href="http://blog.devnu11.net/wp-content/uploads/IMG_2050.jpg"><img alt="Wish u a very Happy & Prosperous New Year 2010 !" class="size-full wp-image-409" height="426" src="http://blog.devnu11.net/wp-content/uploads/IMG_2050.jpg" title="Wish u a very Happy & Prosperous New Year 2010 !" width="640"></a>[/caption]</p>
<p></strong></p>DD-WRT PPPoE Passthrough (on WRT54G)2009-12-29T14:18:00+01:002009-12-29T14:18:00+01:00rmicheltag:blog.devnu11.net,2009-12-29:/2009/12/dd-wrt-pppoe-passthrough.html<p>For a PPPoE Passthrough on DD-WRT, enable jffs and do the following steps on a *nix-based system</p>
<div class="highlight"><pre><span></span><code><span class="nb">cd</span><span class="w"> </span>/tmp<span class="p">;</span>
wget<span class="w"> </span>http://kamikaze.openwrt.org/8.09.1/brcm-2.4/packages/rp-pppoe-relay_3.10-1_mipsel.ipk<span class="p">;</span>
tar<span class="w"> </span>zxf<span class="w"> </span>rp-pppoe-relay_3.10-1_mipsel.ipk<span class="p">;</span>
tar<span class="w"> </span>zxf<span class="w"> </span>data.tar.gz<span class="p">;</span>
scp<span class="w"> </span>usr/sbin/pppoe-relay<span class="w"> </span>root@:/tmp/
</code></pre></div>
<p>Start …</p><p>For a PPPoE Passthrough on DD-WRT, enable jffs and do the following steps on a *nix-based system</p>
<div class="highlight"><pre><span></span><code><span class="nb">cd</span><span class="w"> </span>/tmp<span class="p">;</span>
wget<span class="w"> </span>http://kamikaze.openwrt.org/8.09.1/brcm-2.4/packages/rp-pppoe-relay_3.10-1_mipsel.ipk<span class="p">;</span>
tar<span class="w"> </span>zxf<span class="w"> </span>rp-pppoe-relay_3.10-1_mipsel.ipk<span class="p">;</span>
tar<span class="w"> </span>zxf<span class="w"> </span>data.tar.gz<span class="p">;</span>
scp<span class="w"> </span>usr/sbin/pppoe-relay<span class="w"> </span>root@:/tmp/
</code></pre></div>
<p>Start the relay agent on the router</p>
<div class="highlight"><pre><span></span><code>/tmp/pppoe-relay<span class="w"> </span>-S<span class="w"> </span>vlan1<span class="w"> </span>-C<span class="w"> </span>br0
</code></pre></div>
<p>Now you can start your pppoe client on your notebook.</p>
<p>Tested with a WRT54G and DD-WRT v23 !</p>lvm is not a clvm ;)2009-12-02T09:58:00+01:002009-12-02T09:58:00+01:00rmicheltag:blog.devnu11.net,2009-12-02:/2009/12/lvm-is-not-a-clvm.html<blockquote>
<p><strong>LVM is not cluster aware so be very careful !</strong></p>
</blockquote>
<p>Steps to make changes on a (shared-) lvm:</p>
<ol>
<li>other nodes: <code># vgchange -an</code></li>
<li>master node: make changes like <code># lvrename</code></li>
<li>other nodes: <code># vgscan; vgchange -ay</code></li>
</ol>
<p>Thats on only necessary if you have a shared storage like drbd or a SAN ;)</p>Benchmarking Tape drives2009-11-26T12:47:00+01:002009-11-26T12:47:00+01:00rmicheltag:blog.devnu11.net,2009-11-26:/2009/11/benchmarking-tape-drives.html<p>Generally it is much better to create a ramdisk for this benchmark:<br>
<code># mount -t tmpfs -o size=10G tmpfs /tmp/ramdisk;</code><br>
or<br>
<code># dd if=/dev/zero of=/dev/ram bs=1M count=10000; # mkfs.ext3 /dev/ram; # mount /dev/ram /tmp/ramdisk -o loop;</code></p>
<p>Normally your harddisk is to slow …</p><p>Generally it is much better to create a ramdisk for this benchmark:<br>
<code># mount -t tmpfs -o size=10G tmpfs /tmp/ramdisk;</code><br>
or<br>
<code># dd if=/dev/zero of=/dev/ram bs=1M count=10000; # mkfs.ext3 /dev/ram; # mount /dev/ram /tmp/ramdisk -o loop;</code></p>
<p>Normally your harddisk is to slow for a LTO3/4 or a Jaguar2/3 drive ;)</p>
<ol>
<li>Create a 5G or 10G file<br>
<code># dd if=/dev/urandom of=/tmp/ramdisk/urandom bs=1M count=5000;</code></li>
<li>Now load the tape and start the backup<br>
<code># tar -cl -f- /tmp/ramdisk/urandom 2>/dev/null | mbuffer -L -s 256k -m 5G -P 85 > /dev/nstX;</code><br>
For Jaguar2/3 (IBM) tapedrives you can reach up to 150mb/s over a 2GBit FC HBA</li>
<li>Now rewind the tape and restore<br>
<code># mt -f /dev/nstX rewind # < /dev/nstX mbuffer -L -s 256k -m 5G -p 25 | tar -x -f- 2>/dev/null;</code></li>
</ol>
<p>Now check which is the best blocksize (<code>-s 256k</code>) for your drive. This must be the same for backup AND restore!</p>
<p>My results for a 2Gbit FC HBA, Jaguar2/3 drive and FC disk(s) on SLES10 SP2:<code>HDD -> Tape -> HDD (5G Cache, BS 256k): W 139mb/s peak 75mb/s avg R 137mb/s peak 84mb/s avg RAM -> Tape -> RAM (1G Cache, BS 256k): W 139mb/s peak 126mb/s avg R 155mb/s peak 140mb/s avg</code></p>
<p><code>HDD -> Tape -> HDD (5G Cache, BS 512k): W 149mb/s peak 70mb/s avg R 137mb/s peak 84mb/s avg RAM -> Tape -> RAM (1G Cache, BS 512k): W 149mb/s peak 131mb/s avg R 155mb/s peak 140mb/s avg</code></p>
<p>BS \<256 or >512 jammed the drive.</p>
<p>For IBM tape drives exists the lin_tape driver which is only necessary for multipathing (or support from IBM *unverified* )</p>Das Problem von Linux...2009-11-11T11:55:00+01:002009-11-11T11:55:00+01:00rmicheltag:blog.devnu11.net,2009-11-11:/2009/11/das-problem-von-linux.html<p>[caption id="" align="alignleft" width="324" caption="Das Problem von Linux - found @ xkcd"]<img alt="Das Problem von Linux" height="326" src="http://imgs.xkcd.com/comics/supported_features.png" title="Das Problem von Linux - found @ xkcd" width="324">[/caption]</p>
<p>Und leider stimmt das :(</p>Xenon Licht für Jedermann !2009-10-20T23:41:00+02:002009-10-20T23:41:00+02:00rmicheltag:blog.devnu11.net,2009-10-20:/2009/10/xenon-licht-fur-jedermann.html<p>[caption id="attachment_375" align="aligncenter" width="614" caption="Philips vs MTEC"]<a href="http://blog.devnu11.net/wp-content/uploads/Lichtvergleich.jpg"><img alt="Philips vs MTEC" class="size-large wp-image-375" height="212" src="http://blog.devnu11.net/wp-content/uploads/Lichtvergleich-1024x354.jpg" title="Lichtvergleich" width="614"></a>[/caption]</p>
<p>Ich war auf der Suche nach einem Xenon ähnlichen Licht mit Straßenzulassung. Es gibt Xenon-Brenner für H4/H7 Sockel, aber leider haben die keine Straßen-Zulassung / Prüfzeichen - > <strong>illegal</strong> !</p>
<p>Es gibt von Philips ein Produkt mit dem Namen "Blue Vision …</p><p>[caption id="attachment_375" align="aligncenter" width="614" caption="Philips vs MTEC"]<a href="http://blog.devnu11.net/wp-content/uploads/Lichtvergleich.jpg"><img alt="Philips vs MTEC" class="size-large wp-image-375" height="212" src="http://blog.devnu11.net/wp-content/uploads/Lichtvergleich-1024x354.jpg" title="Lichtvergleich" width="614"></a>[/caption]</p>
<p>Ich war auf der Suche nach einem Xenon ähnlichen Licht mit Straßenzulassung. Es gibt Xenon-Brenner für H4/H7 Sockel, aber leider haben die keine Straßen-Zulassung / Prüfzeichen - > <strong>illegal</strong> !</p>
<p>Es gibt von Philips ein Produkt mit dem Namen "Blue Vision" und auch eine paar mehr, alle relativ teuer (30 bis 50 Euro). Nach ein paar Stunden fand ich dann auch die MTEC SuperWhite mit einer Lichttemperatur von etwa 4350K. Laut Testberichten sollten die besser sein (Farbtechnisch) als die Konkurrenz und zusätzlich eine bessere Ausleuchtung der Straße bescheren. Nun ja bei eBay gibts die für rund 13 Euro (neu !) - kann man nichts falsch machen.</p>
<p>Nur wie das Bild oben zeigt, gibt es keine bessere Ausleuchtung, lediglich die Farbtemperatur kommt wirklich sehr gut an die von Xenon-Brennern ran. Ich werde mir überlegen, ob die Birnen drine bleiben oder wieder rauskommen.</p>
<p>Fazit: Optik 1a - aber man muss dran gewöhnen.</p>Xen virtualization with Intel-VT2009-09-04T23:54:00+02:002009-09-04T23:54:00+02:00rmicheltag:blog.devnu11.net,2009-09-04:/2009/09/xen-virtualization-with-intel-vt.html<p>Hej,</p>
<p>for a training i needed some pcs with a virtualization technology preferably from Intel (VT). The easiest way is to buy some pc components and to build thereof a pc. After my last selfmade pc i'm a little bit impaired on that score. So i needed a pre-build pc …</p><p>Hej,</p>
<p>for a training i needed some pcs with a virtualization technology preferably from Intel (VT). The easiest way is to buy some pc components and to build thereof a pc. After my last selfmade pc i'm a little bit impaired on that score. So i needed a pre-build pc with a intel cpu, gigabit lan and if it possible: small-sized. So is started my research with my best friend google ;)</p>
<p>After a while i found the <a href="http://www.transtec.de/D/D/products/personal_computer/pc/mini_pc.html">transtec SENYO 610</a>.</p>
<p>In the small configuration they have a</p>
<ul>
<li><a href="http://ark.intel.com/Product.aspx?id=36681">Intel Celeron 585</a> (2.16 Ghz) / <a href="http://ark.intel.com/Product.aspx?id=39311">C2D T6500</a> (2.1 Ghz)</li>
<li>1 GB DDR2 RAM (up to 4GB RAM)</li>
<li>160GB 5400rpm (up to 500GB)</li>
<li>Gigalan, Bluetooth</li>
</ul>
<p>inside. But according to the Intel website both cpus didn't support the Intel VT :( So i needed the big one and they have the following configuration</p>
<ul>
<li>C2D T8300 / C2D T9500</li>
<li>1 GB DDR2 RAM (up to 4GB RAM)</li>
<li>160GB 5400rpm (up to 500GB)</li>
<li>Gigalan, Bluetooth, Wlan</li>
</ul>
<p>So i order the big one with a C2D T8300, 4GB Ram and a 160GB (7200rpm) harddisk. Now i'm waiting for the postman :D</p>Mac OS X Advanced printer configuration2009-07-13T00:15:00+02:002009-07-13T00:15:00+02:00rmicheltag:blog.devnu11.net,2009-07-13:/2009/07/mac-os-x-advanced-printer-configuration.html<p>To add a printer on a Mac, you can use the "Print & Fax"-dialog in the system preferences, but instead of this i preferred to use the CUPS interface :) Thats the easiest way to configure a windows printer (thats my mind) under Mac.</p>
<p><a href="http://localhost:631/">http://localhost:631/</a></p>XEN: clocksource/0 Time went backwards2009-07-07T21:40:00+02:002009-07-07T21:40:00+02:00rmicheltag:blog.devnu11.net,2009-07-07:/2009/07/xen-clocksource0-time-went-backwards.html<p>Everybody know about these sweet line(s):</p>
<div class="highlight"><pre><span></span><code>clocksource/0:<span class="w"> </span>Time<span class="w"> </span>went<span class="w"> </span>backwards:<span class="w"> </span><span class="nv">delta</span><span class="o">=</span>-5802595381342<span class="w"> </span><span class="nv">shadow</span><span class="o">=</span><span class="m">440273248432</span><span class="w"> </span><span class="nv">offset</span><span class="o">=</span><span class="m">11586903</span>
</code></pre></div>
<p>To prevent this, add this line to your sysctl.conf</p>
<div class="highlight"><pre><span></span><code>xen.independent_wallclock<span class="o">=</span><span class="m">1</span>
</code></pre></div>
<p>Next is, to add</p>
<div class="highlight"><pre><span></span><code><span class="nv">extra</span><span class="o">=</span><span class="s2">"clocksource=jiffies"</span>
</code></pre></div>
<p>to the config of your XEN domain (like /srv/xen/build.conf …</p><p>Everybody know about these sweet line(s):</p>
<div class="highlight"><pre><span></span><code>clocksource/0:<span class="w"> </span>Time<span class="w"> </span>went<span class="w"> </span>backwards:<span class="w"> </span><span class="nv">delta</span><span class="o">=</span>-5802595381342<span class="w"> </span><span class="nv">shadow</span><span class="o">=</span><span class="m">440273248432</span><span class="w"> </span><span class="nv">offset</span><span class="o">=</span><span class="m">11586903</span>
</code></pre></div>
<p>To prevent this, add this line to your sysctl.conf</p>
<div class="highlight"><pre><span></span><code>xen.independent_wallclock<span class="o">=</span><span class="m">1</span>
</code></pre></div>
<p>Next is, to add</p>
<div class="highlight"><pre><span></span><code><span class="nv">extra</span><span class="o">=</span><span class="s2">"clocksource=jiffies"</span>
</code></pre></div>
<p>to the config of your XEN domain (like /srv/xen/build.conf).</p>
<p>After all this, you can reboot the vm's or to get it working for your current kernel config type this in each vm:</p>
<div class="highlight"><pre><span></span><code>sysctl<span class="w"> </span>-p
<span class="nb">echo</span><span class="w"> </span><span class="s2">"jiffies"</span><span class="w"> </span>><span class="w"> </span>/sys/devices/system/clocksource/clocksource0/current_clocksource
</code></pre></div>
<p>At the moment i only know this from debian-based systems.</p>Building DD-WRT Firmware....Part One2009-07-07T01:29:00+02:002009-07-07T01:29:00+02:00rmicheltag:blog.devnu11.net,2009-07-07:/2009/07/building-dd-wrt-firmware-part-one.html<p>Yeah...1 o'clock and i'm not able to sleep....</p>
<p>...and what happend when i'm not able to sleep ? I'm trying something new - yes, okay Christian would say i'm hacking \^\^</p>
<p>20 minutes after i started the svn checkout from the dd-wrt source, i've read that the source is approximately 20GB huge …</p><p>Yeah...1 o'clock and i'm not able to sleep....</p>
<p>...and what happend when i'm not able to sleep ? I'm trying something new - yes, okay Christian would say i'm hacking \^\^</p>
<p>20 minutes after i started the svn checkout from the dd-wrt source, i've read that the source is approximately 20GB huge - wtf ?</p>
<div class="highlight"><pre><span></span><code>svn<span class="w"> </span>co<span class="w"> </span>svn://svn.dd-wrt.com/DD-WRT<span class="w"> </span>.
</code></pre></div>
<p>So now i try it next day...oh wait in a couple of hours ;)</p>Max OS X mit Time Maschine und iSCSI-Laufwerk2009-07-05T23:45:00+02:002009-07-05T23:45:00+02:00rmicheltag:blog.devnu11.net,2009-07-05:/2009/07/max-os-x-mit-time-maschine-und-iscsi-laufwerk.html<p>Hallo,</p>
<p>da auf dem Mac sich Dateien befinden, die sehr wichtig sind (ssh-key, gpg-key usw), müssen diese gesichert werden. Dazu habe ich mir einige Lösungen angeschaut.</p>
<p>Heute: <strong>Time Maschine</strong></p>
<p>Das ist ja bei Leopard schon dabei und ich hatte es mir schon mal bei einem Freund angesehen. Was mich persönlich …</p><p>Hallo,</p>
<p>da auf dem Mac sich Dateien befinden, die sehr wichtig sind (ssh-key, gpg-key usw), müssen diese gesichert werden. Dazu habe ich mir einige Lösungen angeschaut.</p>
<p>Heute: <strong>Time Maschine</strong></p>
<p>Das ist ja bei Leopard schon dabei und ich hatte es mir schon mal bei einem Freund angesehen. Was mich persönlich immer bei so etwas stört, ist die Tatsache, dass es eine lokale Festplatte sein muss (via USB oder Firewire). Da ich diese Platte aber nicht immer dabei haben werde, ist das ein Problem.</p>
<p>Nun, da ich aber auf mein Netzwerk via VPN zugreifen kann, währe es möglich, eine NAS-Festplatte zu nutzen :) Super, nur sagt Google das es nicht geht bzw. nur über Umwege (ein Image einer Festplatte kann nur auf dem NAS liegen). Was nun ? Zum Wiederherstellen von einer Datei brauch man keine große Bandbreite, und gesichert wird eh nur zu Hause. iSCSI :D Da eh immer ein Server läuft, kann ich auch eine VM mit einem iSCSI Server installieren und die Platte dann via iSCSI mounten. Das macht auch Time Maschine mit !</p>
<p>Als iSCSI Client auf dem Mac gibt es von SNS ein <a href="http://www.studionetworksolutions.com/products/product_detail.php?pi=11" title="globalSAN iSCSI Initiator for Mac OS X">Tool</a>. Installieren - Neustarten - fertig.</p>
<p>(Muss ich nun auch erklären wie man ein iSCSI Target einrichtet ? Wer Interesse hat, bitte ein Kommentar hinterlassen.)</p>
<p>[caption id="attachment_318" align="aligncenter" width="300" caption="globalSAN iSCSI Tool"]<a href="http://blog.devnu11.net/wp-content/uploads/Bild-1.png"><img alt="globalSAN iSCSI Tool" class="size-medium wp-image-318" height="241" src="http://blog.devnu11.net/wp-content/uploads/Bild-1-300x241.png" title="globalSAN iSCSI" width="300"></a>[/caption]</p>
<p>So sieht das ganze aus, wenn ein Target hinzugefügt wurde. Jetzt wird Mac merken dass die neue Festplatte nicht initialisiert werden konnte. Hier erstellt ihr einfach eine neue Partition auf der Festplatte. In meinem Beispiel war es nur ein 8GB Image auf dem Server. Jetzt in den Systemeinstellungen Time Maschine starten und dort die neue Festplatte auswählen.</p>
<p>[caption id="attachment_319" align="aligncenter" width="300" caption="Time Maschine - Auswahl der Festplatte"]<a href="http://blog.devnu11.net/wp-content/uploads/Bild-2.png"><img alt="Time Maschine" class="size-medium wp-image-319" height="144" src="http://blog.devnu11.net/wp-content/uploads/Bild-2-300x144.png" title="Time Maschine" width="300"></a>[/caption]</p>
<p>Jetzt am besten gleich sichern lassen. Das dauert dann je nach Datenumfang eine Weile.</p>
<p>[caption id="attachment_320" align="aligncenter" width="300" caption="Time Maschine - Nach dem ersten Backup"]<a href="http://blog.devnu11.net/wp-content/uploads/Bild-3.png"><img alt="Time Maschine - Done." class="size-medium wp-image-320" height="222" src="http://blog.devnu11.net/wp-content/uploads/Bild-3-300x222.png" title="Time Maschine - Done." width="300"></a>[/caption]</p>
<p>Bisher hatte ich keine Probleme. Das iSCSI-Target stellt eine Debian Lenny XEN-VM mit iscsitarget bereit. Mit 100Mbit dauert das ganze schon etwas länger, aber mit 1Gbit geht das schon recht flott - dafür hab ich meine Daten immer da. OpenVPN sei Danke ;)</p>Mac OS X und die XEN Console2009-07-05T21:45:00+02:002009-07-05T21:45:00+02:00rmicheltag:blog.devnu11.net,2009-07-05:/2009/07/mac-os-x-und-die-xen-console.html<p>Um die XEN Console unter Mac OS X bzw dessen Terminal zu verlassen <strong>CTRL+ALT+6</strong> !</p>
<p>Kurz aber Schmerzlos ;)</p>Ich und das MacBook Pro2009-06-19T10:04:00+02:002009-06-19T10:04:00+02:00rmicheltag:blog.devnu11.net,2009-06-19:/2009/06/ich-und-das-macbook-pro.html<p>Seit ein paar Tagen steht nun eine MacBook Pro vor mir und zieht mich in seinen Bann - mit Erfolg ! Hintergrund war ein Betriebssystem zu haben, welches all meine Programme ausführen kann (Lightroom und *nix/Linux-Tools vertragen sich nun mal nicht) und auch sehr gute Multimedia-Eigenschaften aufzeigen kann (Flash unter Linux …</p><p>Seit ein paar Tagen steht nun eine MacBook Pro vor mir und zieht mich in seinen Bann - mit Erfolg ! Hintergrund war ein Betriebssystem zu haben, welches all meine Programme ausführen kann (Lightroom und *nix/Linux-Tools vertragen sich nun mal nicht) und auch sehr gute Multimedia-Eigenschaften aufzeigen kann (Flash unter Linux im Firefox macht kein Spass). Was bleibt den nun da noch auf der Markt ? Gibt es etwas das ich noch nicht kenne ? Ist jetzt eh zu spät :D</p>
<p>Da der MediaMarkt in der Region keinen MacBook Pro hatte, ging es halt einfach Dienstag nach Berlin. Nicht mal im Gravis konnte ich meine Linux-Ambitionen verstecken - weil wer sitzt schon mit einem Linux-Magazin in einem Apple-Laden ?!</p>
<p>Bezahlen und raus.</p>
<p>[Schnipp]</p>
<p>4 Stunden Berlin mit MacBook Karton in der Hand - schön doof.</p>
<p>[/Schnipp]</p>
<p>Zu Hause wieder angekommen - auspacken. Keine Angst, ich werd hier nicht das Auspacken dokumentieren, auch nicht das erste mal Einschalten - sollen mal die ganzen 15-Jährigen auf YouTube machen. Nur eins, der Akku hat aus dem Stand 5h geschafft :)</p>
<p>Ansonsten ist es schon etwas anderst und bedarf einer gewissen Einarbeitungszeit damit man nicht die Programme immer schließt, wenn man das @ haben möchte.</p>
<p>Schön ist auch, dass man Programme eben so rückstandslos entfernen kann wie unter Linux.</p>
<p>Die Tage werden bestimmt noch ein paar Einträge kommen :)</p>
<p>PS: cmd + space ist auch nett :P</p>Debian Lenny - OCF Resource Agent o2cb Bug2009-03-27T12:43:00+01:002009-03-27T12:43:00+01:00rmicheltag:blog.devnu11.net,2009-03-27:/2009/03/debian-lenny-ocf-resource-agent-o2cb-bug.html<p>Lenny Stable ? Ohne RC-Bugs ? Im <a href="http://packages.debian.org/de/lenny/heartbeat" title="heartbeat Package @ Lenny">heartbeat</a> Paket hat sich ein kleiner Fehler versteckt (ist schon gemeldet).</p>
<p>Wenn ihr versucht, mit heartbeat eine ocfs2 Resource via o2cb zumanagen, wird das nicht gehen :) Der Grund ist, dass ein <strong>\$</strong> vergessen wurde im OCF Resource Script (Zeile 314). Folge ist, dass die ocfs2/o2cb …</p><p>Lenny Stable ? Ohne RC-Bugs ? Im <a href="http://packages.debian.org/de/lenny/heartbeat" title="heartbeat Package @ Lenny">heartbeat</a> Paket hat sich ein kleiner Fehler versteckt (ist schon gemeldet).</p>
<p>Wenn ihr versucht, mit heartbeat eine ocfs2 Resource via o2cb zumanagen, wird das nicht gehen :) Der Grund ist, dass ein <strong>\$</strong> vergessen wurde im OCF Resource Script (Zeile 314). Folge ist, dass die ocfs2/o2cb Resource nicht startet.</p>
<p>Hier ist ein Patch zum selber fixen.</p>
<div class="highlight"><pre><span></span><code>***<span class="w"> </span>/tmp/test/ocf_o2cd.patch
---<span class="w"> </span>usr/lib/ocf/resource.d/heartbeat/o2cb<span class="w"> </span><span class="m">2009</span>-01-22<span class="w"> </span><span class="m">06</span>:58:49.000000000<span class="w"> </span>+0100
+++<span class="w"> </span>/usr/lib/ocf/resource.d/heartbeat/o2cb<span class="w"> </span><span class="m">2009</span>-03-24<span class="w"> </span><span class="m">15</span>:56:28.000000000<span class="w"> </span>+0100
@@<span class="w"> </span>-311,7<span class="w"> </span>+311,7<span class="w"> </span>@@
<span class="w"> </span><span class="p">;;</span>
<span class="w"> </span><span class="k">esac</span>
-RCO2CB<span class="o">=</span>INITDIR/o2cb
+RCO2CB<span class="o">=</span><span class="nv">$INITDIR</span>/o2cb
<span class="w"> </span><span class="c1"># RCO2CB=/etc/init.d/o2cb</span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="o">[</span><span class="w"> </span>!<span class="w"> </span>-x<span class="w"> </span><span class="nv">$RCO2CB</span><span class="w"> </span><span class="o">]</span><span class="p">;</span><span class="w"> </span><span class="k">then</span>
</code></pre></div>
<p>Hier zum Download <a href="https://blog.devnu11.net/wp-content/uploads/ocf_o2cb.patch">ocf_o2cb.patch</a>.</p>The Rise of Barack Obama2009-03-27T11:16:00+01:002009-03-27T11:16:00+01:00rmicheltag:blog.devnu11.net,2009-03-27:/2009/03/the-rise-of-barack-obama.html<p>[caption id="attachment_279" align="alignleft" width="166" caption="Pete Souza"]<img alt="Pete Souza" class="size-medium wp-image-279" height="300" src="http://blog.devnu11.net/wp-content/uploads/pete_souza_white_house-166x300.jpg" title="Pete Souza" width="166">[/caption]</p>
<p>Pete Souza, derzeit tätig als offizieller Fotograf des weißen Haus, brachte im Juli 2008 das Buch "The Rise of Barack Obama" herraus - in the USA Bestseller (<a href="http://www.amazon.de/Rise-Barack-Obama-Pete-Souza/dp/1600781632/" title="The Rise of Barack Obama @ Amazon">Amazon-Link</a>). Auf seiner Internetseite sind diese Bilder und viele mehr zusehen (<a href="http://www.petesouza.com/gallery.html?gallery=The%20Rise%20of%20Barack%20Obama" title="The Rise of Barack Obama">The Rise …</a></p><p>[caption id="attachment_279" align="alignleft" width="166" caption="Pete Souza"]<img alt="Pete Souza" class="size-medium wp-image-279" height="300" src="http://blog.devnu11.net/wp-content/uploads/pete_souza_white_house-166x300.jpg" title="Pete Souza" width="166">[/caption]</p>
<p>Pete Souza, derzeit tätig als offizieller Fotograf des weißen Haus, brachte im Juli 2008 das Buch "The Rise of Barack Obama" herraus - in the USA Bestseller (<a href="http://www.amazon.de/Rise-Barack-Obama-Pete-Souza/dp/1600781632/" title="The Rise of Barack Obama @ Amazon">Amazon-Link</a>). Auf seiner Internetseite sind diese Bilder und viele mehr zusehen (<a href="http://www.petesouza.com/gallery.html?gallery=The%20Rise%20of%20Barack%20Obama" title="The Rise of Barack Obama">The Rise of Barack Obama</a>).</p>
<p>Er fotografiert übrigens mit Leicas M8.2 und Canons EOS 5D MarK II ;)</p>The Presidential Inauguration on Kodachrome @ Flickr2009-03-27T10:59:00+01:002009-03-27T10:59:00+01:00rmicheltag:blog.devnu11.net,2009-03-27:/2009/03/the-presidential-inauguration-on-kodachrome-flickr.html<p><img alt="USA" class="alignleft size-full wp-image-273" height="240" src="http://blog.devnu11.net/wp-content/uploads/3237352176_5d1368fa34_m.jpg" title="(c) The Kodachrome Project" width="159"></p>
<p>Bilder von <strong>The Kodachrome Project</strong> bei der Amtseinführung von <strong>Barack Obama</strong> !</p>
<p><a href="http://www.flickr.com/photos/23585735@N06/sets/72157613088832861/show/" title="The Presidential Inauguration on Kodachrome">Flickr-Link</a> (Flash-Diashow) oder hier <a href="http://www.flickr.com/photos/23585735@N06/sets/72157613088832861/" title="The Presidential Inauguration on Kodachrome">Flickr-Link</a> (normale HTML-Seite)</p>
<p>Tolle Bilder - es lohnt sich.</p>Wenn ich mal groß bin...2009-03-10T23:43:00+01:002009-03-10T23:43:00+01:00rmicheltag:blog.devnu11.net,2009-03-10:/2009/03/wenn-ich-mal-gros-bin.html<p>...und ein wenig Kleingeld vorhanden ist, kauf ich mir das Monster :D Sigma 200-500/F2.8 APO EX DG das kleine handliche Telezoom-Objektiv für die Tasche mit nur 15 kg und kostet \~20000 Euro. Leider ist der AF ultra-lahm. Aber dafür war der Sigma-Mensch sehr nett :)</p>
<p>[caption id="attachment_253" align …</p><p>...und ein wenig Kleingeld vorhanden ist, kauf ich mir das Monster :D Sigma 200-500/F2.8 APO EX DG das kleine handliche Telezoom-Objektiv für die Tasche mit nur 15 kg und kostet \~20000 Euro. Leider ist der AF ultra-lahm. Aber dafür war der Sigma-Mensch sehr nett :)</p>
<p>[caption id="attachment_253" align="aligncenter" width="300" caption="Sigma 200-500/F2.8"]<img alt="Sigma 200-500/F2.8" class="size-medium wp-image-253" height="262" src="http://blog.devnu11.net/wp-content/uploads/sigma1-300x262.jpg" title="Sigma 200-500/F2.8" width="300">[/caption]</p>
<p>[caption id="attachment_255" align="aligncenter" width="300" caption="Sigma 200-500/F2.8"]<img alt="Sigma 200-500/F2.8" class="size-medium wp-image-255" height="228" src="http://blog.devnu11.net/wp-content/uploads/sigma2-300x228.jpg" title="Sigma 200-500/F2.8" width="300">[/caption]</p>OCFS2 @ Debian Lenny/Squeeze V2 [Update]2009-03-09T11:58:00+01:002009-03-09T11:58:00+01:00rmicheltag:blog.devnu11.net,2009-03-09:/2009/03/ocfs2-debian-lennysqueeze-v2.html<p>Auf Lenny und Squeeze kann man schon länger wieder normal OCFS2 installieren bzw. die Module werden nun auch beim Start geladen. Wenn ich das richtig mitbekommen habe, wurde das OCFS2 Paket auch an einen anderen Maintainer übergeben.</p>
<div class="highlight"><pre><span></span><code>root@srv<span class="w"> </span>~<span class="w"> </span><span class="o">[</span><span class="m">0</span><span class="o">]</span><span class="w"> </span>><span class="w"> </span>aptitude<span class="w"> </span>install<span class="w"> </span>ocfs2-tools
</code></pre></div>
<p>und wer es braucht auch die GUI …</p><p>Auf Lenny und Squeeze kann man schon länger wieder normal OCFS2 installieren bzw. die Module werden nun auch beim Start geladen. Wenn ich das richtig mitbekommen habe, wurde das OCFS2 Paket auch an einen anderen Maintainer übergeben.</p>
<div class="highlight"><pre><span></span><code>root@srv<span class="w"> </span>~<span class="w"> </span><span class="o">[</span><span class="m">0</span><span class="o">]</span><span class="w"> </span>><span class="w"> </span>aptitude<span class="w"> </span>install<span class="w"> </span>ocfs2-tools
</code></pre></div>
<p>und wer es braucht auch die GUI dazu</p>
<div class="highlight"><pre><span></span><code>root@srv<span class="w"> </span>~<span class="w"> </span><span class="o">[</span><span class="m">0</span><span class="o">]</span><span class="w"> </span>><span class="w"> </span>aptitude<span class="w"> </span>install<span class="w"> </span>ocfs2console
</code></pre></div>
<p>~~Ob es mit den drbd8-Modulen noch Probleme gibt kann ich erst nächste Woche sagen.~~<br>
<strong>Update:</strong><br>
Die drbd8 Module lassen sich nun auch wieder ohne Probleme installieren via</p>
<div class="highlight"><pre><span></span><code>root@srv<span class="w"> </span>~<span class="w"> </span><span class="o">[</span><span class="m">0</span><span class="o">]</span><span class="w"> </span>><span class="w"> </span>aptitude<span class="w"> </span>install<span class="w"> </span>drbd8-modules-2.6-686
</code></pre></div>
<p>installieren. Aber leider nur Version 8.0.14 - aktuell ist 8.3.0 bzw 8.3.1rc1 - schade, da ist selbst ein SLES11 aktueller (noch).</p>Silvester 20082009-01-01T17:09:00+01:002009-01-01T17:09:00+01:00rmicheltag:blog.devnu11.net,2009-01-01:/2009/01/silvester-2008.html<p>[caption id="attachment_224" align="aligncenter" width="400" caption="Silvester 2008 @ Dänemark"]<img alt="Silvester 2008 @ Dänemark" class="size-full wp-image-224" height="384" src="https://blog.devnu11.net/wp-content/uploads/silvester.jpg" title="Silvester 2008" width="400">[/caption]</p>
<p>Wenn auch spät: <strong>Allen einen gutes und gesundes neues Jahr !</strong></p>Sechs, setzen o2 !2008-12-04T22:46:00+01:002008-12-04T22:46:00+01:00rmicheltag:blog.devnu11.net,2008-12-04:/2008/12/sechs_setzen_o2.html<p>[caption id="attachment_202" align="alignleft" width="300" caption="Flat oder was ?"]<a href="https://blog.devnu11.net/wp-content/uploads/internet.jpg"><img alt="Flat oder was ?" class="size-medium wp-image-202" height="179" src="https://blog.devnu11.net/wp-content/uploads/internet-300x179.jpg" title="Flat oder was ?" width="300"></a>[/caption]</p>
<p>Also wenn jemand von o2 das irgend wann mal lesen sollte, bitte ich um Erklärung, warum am 30.10. für <strong>396min</strong> 0 Euro anfallen und am 31.10. für <strong>464min</strong> -> 16,76 Euro (netto) anfallen !!</p>
<p>Das sind ja …</p><p>[caption id="attachment_202" align="alignleft" width="300" caption="Flat oder was ?"]<a href="https://blog.devnu11.net/wp-content/uploads/internet.jpg"><img alt="Flat oder was ?" class="size-medium wp-image-202" height="179" src="https://blog.devnu11.net/wp-content/uploads/internet-300x179.jpg" title="Flat oder was ?" width="300"></a>[/caption]</p>
<p>Also wenn jemand von o2 das irgend wann mal lesen sollte, bitte ich um Erklärung, warum am 30.10. für <strong>396min</strong> 0 Euro anfallen und am 31.10. für <strong>464min</strong> -> 16,76 Euro (netto) anfallen !!</p>
<p>Das sind ja nur(!!) 14h 20min Onlinezeit mit dem verfluchten HANDY,und nur das Handy - Kein Notebook oder dergleichen !</p>
<p>Mal gucken was o2 dazu sagen wird, wenn Sie meine Mail bekommen haben. Ich möchte gerne wissen auf welchen Pornoseiten ;) ich mit den Handy gewesen sein soll - 14 Stunden lang !!!! Ob o2 auch ne Zwangstrennung hat ?</p>Grub VGA Mode2008-11-28T15:46:00+01:002008-11-28T15:46:00+01:00rmicheltag:blog.devnu11.net,2008-11-28:/2008/11/grub-vga-mode.html<p>You would like to know what Grub VGA Mode you can use ? Default is something like that</p>
<div class="highlight"><pre><span></span><code>Color<span class="w"> </span>depth<span class="w"> </span><span class="p">|</span><span class="w"> </span>640x480<span class="w"> </span>800x600<span class="w"> </span>1024x768<span class="w"> </span>1280x1024
-----------------+-------------------------------------
<span class="m">256</span><span class="w"> </span><span class="o">(</span>8bit<span class="o">)</span><span class="p">|</span><span class="w"> </span><span class="m">769</span><span class="w"> </span><span class="m">771</span><span class="w"> </span><span class="m">773</span><span class="w"> </span><span class="m">775</span>
<span class="m">32000</span><span class="w"> </span><span class="o">(</span>15bit<span class="o">)</span><span class="p">|</span><span class="w"> </span><span class="m">784</span><span class="w"> </span><span class="m">787</span><span class="w"> </span><span class="m">790</span><span class="w"> </span><span class="m">793</span>
<span class="m">65000</span><span class="w"> </span><span class="o">(</span>16bit<span class="o">)</span><span class="p">|</span><span class="w"> </span><span class="m">785</span><span class="w"> </span><span class="m">788</span><span class="w"> </span><span class="m">791</span><span class="w"> </span><span class="m">794</span>
<span class="m">16</span>.7<span class="w"> </span>Mill.<span class="o">(</span>24bit<span class="o">)</span><span class="p">|</span><span class="w"> </span><span class="m">786</span><span class="w"> </span><span class="m">789</span><span class="w"> </span><span class="m">792</span><span class="w"> </span><span class="m">795</span>
</code></pre></div>
<p>but …</p><p>You would like to know what Grub VGA Mode you can use ? Default is something like that</p>
<div class="highlight"><pre><span></span><code>Color<span class="w"> </span>depth<span class="w"> </span><span class="p">|</span><span class="w"> </span>640x480<span class="w"> </span>800x600<span class="w"> </span>1024x768<span class="w"> </span>1280x1024
-----------------+-------------------------------------
<span class="m">256</span><span class="w"> </span><span class="o">(</span>8bit<span class="o">)</span><span class="p">|</span><span class="w"> </span><span class="m">769</span><span class="w"> </span><span class="m">771</span><span class="w"> </span><span class="m">773</span><span class="w"> </span><span class="m">775</span>
<span class="m">32000</span><span class="w"> </span><span class="o">(</span>15bit<span class="o">)</span><span class="p">|</span><span class="w"> </span><span class="m">784</span><span class="w"> </span><span class="m">787</span><span class="w"> </span><span class="m">790</span><span class="w"> </span><span class="m">793</span>
<span class="m">65000</span><span class="w"> </span><span class="o">(</span>16bit<span class="o">)</span><span class="p">|</span><span class="w"> </span><span class="m">785</span><span class="w"> </span><span class="m">788</span><span class="w"> </span><span class="m">791</span><span class="w"> </span><span class="m">794</span>
<span class="m">16</span>.7<span class="w"> </span>Mill.<span class="o">(</span>24bit<span class="o">)</span><span class="p">|</span><span class="w"> </span><span class="m">786</span><span class="w"> </span><span class="m">789</span><span class="w"> </span><span class="m">792</span><span class="w"> </span><span class="m">795</span>
</code></pre></div>
<p>but with <code>hwinfo --framebuffer</code> you get an output like this</p>
<div class="highlight"><pre><span></span><code>stina:/home/rmichel#<span class="w"> </span>hwinfo<span class="w"> </span>--framebuffer
<span class="m">02</span>:<span class="w"> </span>None<span class="w"> </span><span class="m">00</span>.0:<span class="w"> </span><span class="m">11001</span><span class="w"> </span>VESA<span class="w"> </span>Framebuffer
<span class="w"> </span><span class="o">[</span>Created<span class="w"> </span>at<span class="w"> </span>bios.450<span class="o">]</span>
<span class="w"> </span>Unique<span class="w"> </span>ID:<span class="w"> </span>rdCR.VSBbdW2x3qC
<span class="w"> </span>Hardware<span class="w"> </span>Class:<span class="w"> </span>framebuffer
<span class="w"> </span>Model:<span class="w"> </span><span class="s2">"NVIDIA G86 Board - NV_NB8M "</span>
<span class="w"> </span>Vendor:<span class="w"> </span><span class="s2">"NVIDIA Corporation"</span>
<span class="w"> </span>Device:<span class="w"> </span><span class="s2">"G86 Board - NV_NB8M "</span>
<span class="w"> </span>SubVendor:<span class="w"> </span><span class="s2">"NVIDIA"</span>
<span class="w"> </span>SubDevice:
<span class="w"> </span>Revision:<span class="w"> </span><span class="s2">"Chip Rev"</span>
<span class="w"> </span>Memory<span class="w"> </span>Size:<span class="w"> </span><span class="m">14</span><span class="w"> </span>MB
<span class="w"> </span>Memory<span class="w"> </span>Range:<span class="w"> </span>0xd1000000-0xd1dfffff<span class="w"> </span><span class="o">(</span>rw<span class="o">)</span>
<span class="w"> </span>Mode<span class="w"> </span>0x0300:<span class="w"> </span>640x400<span class="w"> </span><span class="o">(</span>+640<span class="o">)</span>,<span class="w"> </span><span class="m">8</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x0301:<span class="w"> </span>640x480<span class="w"> </span><span class="o">(</span>+640<span class="o">)</span>,<span class="w"> </span><span class="m">8</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x0303:<span class="w"> </span>800x600<span class="w"> </span><span class="o">(</span>+800<span class="o">)</span>,<span class="w"> </span><span class="m">8</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x0305:<span class="w"> </span>1024x768<span class="w"> </span><span class="o">(</span>+1024<span class="o">)</span>,<span class="w"> </span><span class="m">8</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x0307:<span class="w"> </span>1280x1024<span class="w"> </span><span class="o">(</span>+1280<span class="o">)</span>,<span class="w"> </span><span class="m">8</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x030e:<span class="w"> </span>320x200<span class="w"> </span><span class="o">(</span>+640<span class="o">)</span>,<span class="w"> </span><span class="m">16</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x030f:<span class="w"> </span>320x200<span class="w"> </span><span class="o">(</span>+1280<span class="o">)</span>,<span class="w"> </span><span class="m">24</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x0311:<span class="w"> </span>640x480<span class="w"> </span><span class="o">(</span>+1280<span class="o">)</span>,<span class="w"> </span><span class="m">16</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x0312:<span class="w"> </span>640x480<span class="w"> </span><span class="o">(</span>+2560<span class="o">)</span>,<span class="w"> </span><span class="m">24</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x0314:<span class="w"> </span>800x600<span class="w"> </span><span class="o">(</span>+1600<span class="o">)</span>,<span class="w"> </span><span class="m">16</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x0315:<span class="w"> </span>800x600<span class="w"> </span><span class="o">(</span>+3200<span class="o">)</span>,<span class="w"> </span><span class="m">24</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x0317:<span class="w"> </span>1024x768<span class="w"> </span><span class="o">(</span>+2048<span class="o">)</span>,<span class="w"> </span><span class="m">16</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x0318:<span class="w"> </span>1024x768<span class="w"> </span><span class="o">(</span>+4096<span class="o">)</span>,<span class="w"> </span><span class="m">24</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x031a:<span class="w"> </span>1280x1024<span class="w"> </span><span class="o">(</span>+2560<span class="o">)</span>,<span class="w"> </span><span class="m">16</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x031b:<span class="w"> </span>1280x1024<span class="w"> </span><span class="o">(</span>+5120<span class="o">)</span>,<span class="w"> </span><span class="m">24</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x0330:<span class="w"> </span>320x200<span class="w"> </span><span class="o">(</span>+320<span class="o">)</span>,<span class="w"> </span><span class="m">8</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x0331:<span class="w"> </span>320x400<span class="w"> </span><span class="o">(</span>+320<span class="o">)</span>,<span class="w"> </span><span class="m">8</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x0332:<span class="w"> </span>320x400<span class="w"> </span><span class="o">(</span>+640<span class="o">)</span>,<span class="w"> </span><span class="m">16</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x0333:<span class="w"> </span>320x400<span class="w"> </span><span class="o">(</span>+1280<span class="o">)</span>,<span class="w"> </span><span class="m">24</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x0334:<span class="w"> </span>320x240<span class="w"> </span><span class="o">(</span>+320<span class="o">)</span>,<span class="w"> </span><span class="m">8</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x0335:<span class="w"> </span>320x240<span class="w"> </span><span class="o">(</span>+640<span class="o">)</span>,<span class="w"> </span><span class="m">16</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x0336:<span class="w"> </span>320x240<span class="w"> </span><span class="o">(</span>+1280<span class="o">)</span>,<span class="w"> </span><span class="m">24</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x033d:<span class="w"> </span>640x400<span class="w"> </span><span class="o">(</span>+1280<span class="o">)</span>,<span class="w"> </span><span class="m">16</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x033e:<span class="w"> </span>640x400<span class="w"> </span><span class="o">(</span>+2560<span class="o">)</span>,<span class="w"> </span><span class="m">24</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x0345:<span class="w"> </span>1600x1200<span class="w"> </span><span class="o">(</span>+1600<span class="o">)</span>,<span class="w"> </span><span class="m">8</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x0346:<span class="w"> </span>1600x1200<span class="w"> </span><span class="o">(</span>+3200<span class="o">)</span>,<span class="w"> </span><span class="m">16</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x0347:<span class="w"> </span>1400x1050<span class="w"> </span><span class="o">(</span>+1400<span class="o">)</span>,<span class="w"> </span><span class="m">8</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x0348:<span class="w"> </span>1400x1050<span class="w"> </span><span class="o">(</span>+2800<span class="o">)</span>,<span class="w"> </span><span class="m">16</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x0349:<span class="w"> </span>1400x1050<span class="w"> </span><span class="o">(</span>+5600<span class="o">)</span>,<span class="w"> </span><span class="m">24</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x034a:<span class="w"> </span>1600x1200<span class="w"> </span><span class="o">(</span>+6400<span class="o">)</span>,<span class="w"> </span><span class="m">24</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x0352:<span class="w"> </span>2048x1536<span class="w"> </span><span class="o">(</span>+8192<span class="o">)</span>,<span class="w"> </span><span class="m">24</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x0360:<span class="w"> </span>1280x800<span class="w"> </span><span class="o">(</span>+1280<span class="o">)</span>,<span class="w"> </span><span class="m">8</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x0361:<span class="w"> </span>1280x800<span class="w"> </span><span class="o">(</span>+5120<span class="o">)</span>,<span class="w"> </span><span class="m">24</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x0362:<span class="w"> </span>768x480<span class="w"> </span><span class="o">(</span>+768<span class="o">)</span>,<span class="w"> </span><span class="m">8</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x0364:<span class="w"> </span>1440x900<span class="w"> </span><span class="o">(</span>+1440<span class="o">)</span>,<span class="w"> </span><span class="m">8</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x0365:<span class="w"> </span>1440x900<span class="w"> </span><span class="o">(</span>+5760<span class="o">)</span>,<span class="w"> </span><span class="m">24</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x0368:<span class="w"> </span>1680x1050<span class="w"> </span><span class="o">(</span>+1680<span class="o">)</span>,<span class="w"> </span><span class="m">8</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x0369:<span class="w"> </span>1680x1050<span class="w"> </span><span class="o">(</span>+6720<span class="o">)</span>,<span class="w"> </span><span class="m">24</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x037c:<span class="w"> </span>1920x1200<span class="w"> </span><span class="o">(</span>+1920<span class="o">)</span>,<span class="w"> </span><span class="m">8</span><span class="w"> </span>bits
<span class="w"> </span>Mode<span class="w"> </span>0x037d:<span class="w"> </span>1920x1200<span class="w"> </span><span class="o">(</span>+7680<span class="o">)</span>,<span class="w"> </span><span class="m">24</span><span class="w"> </span>bits
<span class="w"> </span>Config<span class="w"> </span>Status:<span class="w"> </span><span class="nv">cfg</span><span class="o">=</span>new,<span class="w"> </span><span class="nv">avail</span><span class="o">=</span>yes,<span class="w"> </span><span class="nv">need</span><span class="o">=</span>no,<span class="w"> </span><span class="nv">active</span><span class="o">=</span>unknown
</code></pre></div>
<p>My notebook has native 1680x1050 so i can use <strong>vga=0x369</strong> to boot up with 1680x1050 :)</p>OCFS2 @ Debian Lenny2008-11-10T16:51:00+01:002008-11-10T16:51:00+01:00rmicheltag:blog.devnu11.net,2008-11-10:/2008/11/ocfs2-debian-lenny.html<p>Da die ocfs2-tools aus dem testing (Lenny) Repository enfernt wurden, muss man auf die Sourcen von etch oder sid zurück greifen. Beide sind lange nicht mehr aktuell, aber funktionieren _fast_ ohne Probleme.</p>
<p>Ich habe die ocfs2-tools aus etch installiert und dabei bemerkte ich, dass zwei wichtige Module nicht geladen wurden …</p><p>Da die ocfs2-tools aus dem testing (Lenny) Repository enfernt wurden, muss man auf die Sourcen von etch oder sid zurück greifen. Beide sind lange nicht mehr aktuell, aber funktionieren _fast_ ohne Probleme.</p>
<p>Ich habe die ocfs2-tools aus etch installiert und dabei bemerkte ich, dass zwei wichtige Module nicht geladen wurden ! Damit beim Start OCFS zu Verfügung steht, muss man zwei Zeilen hinzufügen in der <strong>/etc/init.d/o2cb</strong> !</p>
<p>Den String <strong>LOAD_ACTION</strong> suchen und folgende zwei Zeilen hinzufügen.</p>
<div class="highlight"><pre><span></span><code><span class="s2">"load_module ocfs"</span>
<span class="s2">"load_module jbd"</span>
</code></pre></div>
<p>Reboot, fertig.</p>Nagios 3.0.5 for Debian Lenny2008-11-06T18:53:00+01:002008-11-06T18:53:00+01:00rmicheltag:blog.devnu11.net,2008-11-06:/2008/11/nagios-305-for-debian-lenny.html<p>Nagios 3.0.5 released on 11/04/2008</p>
<p>Packages available via ftp. Please use the following line in your sources.list</p>
<p><code>deb ftp://zion.devnu11.net/ unstable main contrib non-free</code></p>
<p>Based on the <strong>unstable</strong> Debian packages.</p>freeRADIUS & DD-WRT mit WPA2 und Windows XP - Teil 12008-09-16T09:25:00+02:002008-09-16T09:25:00+02:00rmicheltag:blog.devnu11.net,2008-09-16:/2008/09/freeradius-dd-wrt-mit-wpa2-und-windows-xp-teil-1.html<p>RADIUS steht für Remote Authentication Dial In User Service und ist ein Triple-A-System (Authentifizierung, Autorisierung und Accounting). Dieser <strong>kann</strong> in einem WLAN als zentraler Authentifizierungsserver dienen und genau dass will ich hier mal dokumentieren !</p>
<p>Da ich Zertifikate einsetzen wollte, musste ich erstmal den freeRADIUS unter Debian Etch/Lenny neubauen, weil …</p><p>RADIUS steht für Remote Authentication Dial In User Service und ist ein Triple-A-System (Authentifizierung, Autorisierung und Accounting). Dieser <strong>kann</strong> in einem WLAN als zentraler Authentifizierungsserver dienen und genau dass will ich hier mal dokumentieren !</p>
<p>Da ich Zertifikate einsetzen wollte, musste ich erstmal den freeRADIUS unter Debian Etch/Lenny neubauen, weil dieser keine TLS/EAP/PEAP/TTLS Unterstützung hat (<a href="http://www.gnome.org/~markmc/openssl-and-the-gpl.html" title="Lizenzproblem">Lizenzproblem mit OpenSSL</a>). Also kurz <a href="http://packages.qa.debian.org/f/freeradius.html" title="freeRADIUS @ debian">hier</a> vorbeischauen und Links unter "Source package" auf <strong>*.dsc</strong>, <strong>*.orig</strong> und <strong>*.diff</strong> klicken um den Quellcode runterzuladen. Diesen nach /usr/src kopieren und mit <strong><code>dpkg-source -x *.dsc</code></strong> entpacken. Mit <strong>ls -l</strong> prüfen ob folgender Ordner existiert "freeradius-2.0.4+dfsg" (Stand 11.09.08)</p>
<p>Nun kann man mit einem Blick in debian/control sehen, welche Bedingungen erfüllt sein müssen (Build-Depends), damit wir das Paket neubauen können.</p>
<p><code>autotools-dev, debhelper (>= 6.0.7), libgdbm-dev, libiodbc2-dev, libkrb5-dev, libldap2-dev, libltdl3-dev, libmysqlclient15-dev | libmysqlclient-dev, libpam0g-dev, libpcap-dev, libperl-dev, libpq-dev, libsasl2-dev, libsnmp-dev, libtool, python-dev</code></p>
<p>Zu diesen Paketen kommt noch die <strong>libssl-dev</strong>, die wir jetzt gleich an das Zeilenende von Build-Depends mit anhängen. Die Zeile sollte dann wie folgt aussehen</p>
<p><code>Source: freeradius Build-Depends: autotools-dev, debhelper (>= 6.0.7), libgdbm-dev, libiodbc2-dev, libkrb5-dev, libldap2-dev, libltdl3-dev, libmysqlclient15-dev | libmysqlclient-dev, libpam0g-dev, libpcap-dev, libperl-dev, libpq-dev, libsasl2-dev, libsnmp-dev, libtool, python-dev, libssl-dev Section: net</code></p>
<p>Jetzt einfach ein<br>
<code>aptitude install autotools-dev debhelper libgdbm-dev libiodbc2-dev libkrb5-dev libldap2-dev libltdl3-dev libmysqlclient-dev libpam0g-dev libpcap-dev libperl-dev libpq-dev libsasl2-dev libsnmp-dev libtool python-dev libssl-dev</code></p>
<p>Wenn das fertig ist, können wir uns mit einem Editor die debian/rules ansehen. Hier alles von <strong>--without-rlm_eap-*</strong> zu <strong>--with-rlm_eap-*</strong> ändern außer <strong>--without-rlm_eap_tnc</strong>, dass bitte so lassen. Das gleiche auch mit <strong>--without-openssl</strong> und wahlweise noch mit <strong>--without-rlm_otp</strong>. Dann suchen wir noch in der rules den Anschnitt</p>
<p><code>for pkg in ${pkgs} ; do \ if dh_shlibdeps -p $$pkg -- -O 2>/dev/null | grep -q libssl; then \ echo "$$pkg links to openssl" ;\ exit 1 ;\ fi ;\ done</code></p>
<p>und entfernen diesen. Wenn ich/wir nichts vergessen haben dann in das freeradius Verzeichnis wechseln und <code>dpkg-buildpackage -uc -us</code> ausführen. Am Ende sollten wir in /usr/src unsere Pakete vorfinden. Hier meine Liste</p>
<p><code>root@build debian [0] # ll insgesamt 2,2M -rw-r--r-- 1 root root 201K 2008-09-09 10:11 freeradius-common_2.0.4+dfsg-7_all.deb -rw-r--r-- 1 root root 927K 2008-09-09 10:11 freeradius-dbg_2.0.4+dfsg-7_i386.deb -rw-r--r-- 1 root root 127K 2008-09-09 10:11 freeradius-dialupadmin_2.0.4+dfsg-7_all.deb -rw-r--r-- 1 root root 17K 2008-09-09 10:11 freeradius-iodbc_2.0.4+dfsg-7_i386.deb -rw-r--r-- 1 root root 18K 2008-09-09 10:11 freeradius-krb5_2.0.4+dfsg-7_i386.deb -rw-r--r-- 1 root root 34K 2008-09-09 10:11 freeradius-ldap_2.0.4+dfsg-7_i386.deb -rw-r--r-- 1 root root 25K 2008-09-09 10:11 freeradius-mysql_2.0.4+dfsg-7_i386.deb -rw-r--r-- 1 root root 36K 2008-09-09 10:11 freeradius-postgresql_2.0.4+dfsg-7_i386.deb -rw-r--r-- 1 root root 72K 2008-09-09 10:11 freeradius-utils_2.0.4+dfsg-7_i386.deb -rw-r--r-- 1 root root 5,3K 2008-09-09 10:11 freeradius_2.0.4+dfsg-7.diff.gz -rw-r--r-- 1 root root 1,3K 2008-09-09 10:11 freeradius_2.0.4+dfsg-7.dsc -rw-r--r-- 1 root root 5,3K 2008-09-09 10:11 freeradius_2.0.4+dfsg-7_i386.changes -rw-r--r-- 1 root root 503K 2008-09-09 10:11 freeradius_2.0.4+dfsg-7_i386.deb -rw-r--r-- 1 root root 102K 2008-09-09 10:11 libfreeradius-dev_2.0.4+dfsg-7_i386.deb -rw-r--r-- 1 root root 84K 2008-09-09 10:11 libfreeradius2_2.0.4+dfsg-7_i386.deb</code></p>
<p>Diese könnte etwas anderst aussehen, sollte aber bis auf die Versionsnummer vollständig sein.</p>
<p><strong>[Für die Schreibfaulen]{style="color: #ff0000;"}</strong>: <a href="https://blog.devnu11.net/wp-content/uploads/freeradius_patch.diff">Hier</a> die diff für die Änderungen. Runterladen, dann in das freeradius Verzeichnis wechseln und dann <strong>patch -p1 -i ../pfad/zur/diff</strong> ausführen.</p>
<p>Nun können wir unseren RADIUS Server mit</p>
<p><code>dpkg -i freeradius_2.0.4+dfsg-6_i386.deb freeradius-common_2.0.4+dfsg-6_all.deb freeradius-utils_2.0.4+dfsg-6_i386.deb libfreeradius2_2.0.4+dfsg-6_i386.deb</code></p>
<p>einfach installieren. Bei Fragen, Fehlern oder Anmerkungen einfach einen Kommentar da lassen.</p>
<p><strong>Auf die Pakete kann auch via<br>
<code>deb ftp://zion.devnu11.net/ unstable main contrib non-free</code><br>
zugegriffen werden.</strong></p>freeRADIUS & DD-WRT mit WPA2 und Windows XP - Teil 22008-09-16T09:25:00+02:002008-09-16T09:25:00+02:00rmicheltag:blog.devnu11.net,2008-09-16:/2008/09/freeradius-dd-wrt-mit-wpa2-und-windows-xp-teil-2.html<p>So nach dem wir nun dem <a href="https://blog.devnu11.net/2008/09/freeradius-dd-wrt-mit-wpa2-und-windows-xp-teil-1/">freeRADIUS EAP & TLS u.s.w beigebracht haben</a>, können wir nun den Router konfigurieren. In meinem Fall ist das das Linksys WRT54GL mit DD-WRT v24.</p>
<p>[caption id="attachment_141" align="aligncenter" width="300" caption="Einstellungen für DD-WRT"]<a href="https://blog.devnu11.net/wp-content/uploads/wddwrt_wlsec_config.jpg"><img alt="Einstellungen für DD-WRT" class="size-medium wp-image-141" height="156" src="https://blog.devnu11.net/wp-content/uploads/wddwrt_wlsec_config-300x156.jpg" title="ddwrt_wlsec_config" width="300"></a>[/caption]</p>
<p>Als erstes Loggen wir uns auf dem …</p><p>So nach dem wir nun dem <a href="https://blog.devnu11.net/2008/09/freeradius-dd-wrt-mit-wpa2-und-windows-xp-teil-1/">freeRADIUS EAP & TLS u.s.w beigebracht haben</a>, können wir nun den Router konfigurieren. In meinem Fall ist das das Linksys WRT54GL mit DD-WRT v24.</p>
<p>[caption id="attachment_141" align="aligncenter" width="300" caption="Einstellungen für DD-WRT"]<a href="https://blog.devnu11.net/wp-content/uploads/wddwrt_wlsec_config.jpg"><img alt="Einstellungen für DD-WRT" class="size-medium wp-image-141" height="156" src="https://blog.devnu11.net/wp-content/uploads/wddwrt_wlsec_config-300x156.jpg" title="ddwrt_wlsec_config" width="300"></a>[/caption]</p>
<p>Als erstes Loggen wir uns auf dem Router ein. Klicken dann auf <strong>Wireless</strong> und dann auf <strong>Wireless Security</strong>. Dort wählen wir <strong>WPA2 Enterprise</strong> aus. Nun müssen wir unseren Server eintragen, wo wir gerade freeRADIUS installiert haben. Desweiteren brauchen wir das <strong>RADIUS Shared Secret</strong>. Hier denken wir uns ein Passwort aus. Diese müssen wir später in die Konfiguration des freeRADIUS Servers eintragen. <strong>Port</strong> und <strong>Key Renewal Interval</strong> können wir so belassen. Fertig - der Router fragt nun immer den Radius-Server wenn sich ein Client anmelden möchte. Teilweise muss man den <strong>WPA Algorithms</strong> auf <strong>TKIP</strong> umstellen. Zum Anfang können wir es auch machen und stellen es später dann wieder <strong>AES</strong> um. <strong>TKIP</strong> unterstützen eigentlich alle WLAN-Karten, und somit haben wir für den Anfang schon ein Fehlerpunkt ausgeräumt.</p>
<p>Wenn jemand schon ein CA hat, sollte jetzt für den User und den Server Zertifikate ausstellen. Sollte noch keine CA ( <a class="mw-redirect" href="http://de.wikipedia.org/wiki/Certificate_Authority" title="Certificate Authority">Certificate Authority</a> ) vorhanden sein, erstellen wir uns nun ein. Wir wechseln in der Verzeichnis <strong>/usr/lib/ssl/misc</strong> und dort passen wir den Eintrag <strong><code>CATOP=./devnu11CA</code></strong> entsprechend unseren Vorstellungen an. Wenn wir fertig sind, reicht ein Aufruf von <strong>./CA.sh -newca</strong> im Verzeichnis. Alle Fragen beantwortet ? Dann können wir mit</p>
<p><code>openssl req -new -nodes -keyout server.key.pem -out server.req.pem</code></p>
<p>den Request für das Zertifikat vom Server erstellen. Nur nur signieren und wir haben das Zertifikat für den Server.</p>
<p><code>openssl ca -out server.cert.pem -infiles ./server.req.pem</code></p>
<p>hier werden wir nun nach der Passphrase gefragt, die wir beim erstellen unserer CA eingetippt haben. Das gleich machen wir nun für den Client.</p>
<p><code>openssl req -new -nodes -keyout rmichel.key.pem -out rmichel.req.pem openssl ca -out rmichel.cert.pem -infiles ./rmichel.req.pem</code></p>
<p>Das server.cert.pem und das cacert.pem kopieren wir nun nach <strong>/etc/freeradius/certs</strong>. Dort ändern wir den Besitzer mit</p>
<p><code>chown root:freerad *.pem</code></p>
<p>und ändern auch die Zugriffsrechte auf 440 mit</p>
<p><code>chmod 440 *.pem</code></p>
<p>Jetzt sind wir fast fertig. Nun müssen wir noch den freeRADIUS einrichten. Dazu nach /etc/freeradius/certs wechseln und</p>
<p><code>openssl dhparam -check -text -5 512 -out dh dd if=/dev/urandom of=random count=2</code></p>
<p>ausführen. Beides dient der TLS Verschlüsselung. Danach editieren wir dann die /etc/freeradius/clients.conf und fügen die folgenden Zeilen hinzu<br>
<code>client 192.168.26.254/24 { secret = passwort shortname = wrt54gl nastype = other }</code></p>
<p>Hier ist steht die IP Adresse des WLAN Accesspoints, das RADIUS Shared Secret was wir schon im Accesspoint eingetragen haben und noch ein Alias. Dann öffnen wir die <strong>/etc/freeradius/eap.conf</strong>. Nun passen wir folgende EInträge an</p>
<p><code>default_eap_type = tls private_key_file = ${certdir}/server.key.pem certificate_file = ${certdir}/server.cert.pem CA_file = ${cadir}/cacert.pem</code></p>
<p>Damit sollte der RADIUS-Server fertig sein. Einfach mal mit <strong>freeradius -X</strong> testen ob der Server startet (Sollte er eigentlich ;) )</p>
<p>Nun müssen wir noch fix unser Client-Zertifikat in das PKCS12-Format umwandeln mit</p>
<p><code>openssl pkcs12 -nodes -export -in rmichel.cert.pem -inkey rmichel.key.pem -out rmichel.cert.p12 -clcerts</code></p>
<p>Das müsst ihr zusammen mit dem cacert.pem auf einen USB-Stick kopieren oder gleich auf den Windows Rechner. Das war's ! Wir sind mit dem RADIUS-Server fertig.</p>
<p>Nun sind wir auf dem Windows-Rechner, und starten über <strong>Start->Ausführen->mmc</strong> die Microsoft-Mangment-Console, kurs mmc. Dort auf <strong>Datei->Snap-In hinzufügen</strong> und dann auf <strong>Hinzufügen...</strong>. Dann nach unten Scrollen und <strong>Zertifikate</strong> hinzufügen und <strong>Eigenes Benutzerkonto</strong> auswählen. Jetzt fügen wir das <strong>cacert.pem</strong> mit Rechtsklick auf <strong>Vertrauenswürdige Stammzertifizierungsstellen->Alle Aufgabe->Importieren</strong> ein. Das <strong>USERNAME.cert.pem</strong> über Rechtsklick <strong>Eigene Zertifikate->Alle Aufgabe->Importieren</strong> und hier fragt Windows nach der Passpharse.</p>
<p>Lediglich das passende WLAN muss noch eingerichtet werden. Auf <strong>Start->Einstellungen->Netzwerkverbindungen->Drahtlose Netzwerkverbindung</strong> Rechtsklick und <strong>Verfügbare drahtlose Netzwerke anzeigen</strong>. Im Infofenster <strong>Drahtlosnetzwerk für Heim- bzw. kleines Firmennetzwerk einrichten</strong> anklicken. Nun tragen Sie die SSID ein, und stellen <strong>WPA2</strong> ein. Datenverschlüsselung <strong>TKIP</strong> und der EAP-Typ auf <strong>Smartcard oder anderes Zertifikat</strong> einstellen. Wenn alles geklappt hat sollten wir jetzt in der Ausgabe von freeRADIUS (welches wir ja mit freeradius -X gestarten haben) eine paar Meldungen sehen, und auf dem Windows-Client eine erfolgreich verbunden WLAN-Verbindung.</p>
<p>Done.</p>
<p>Bei Fragen einfach ein Kommentar hinterlassen. Ich werde versuchen zuhelfen :)</p>IBM/Lenovo Thinkpad R61 und die WLAN-LED2008-09-08T16:53:00+02:002008-09-08T16:53:00+02:00rmicheltag:blog.devnu11.net,2008-09-08:/2008/09/ibmlenovo-thinkpad-wlan-led.html<p>Habe mich letzte Woche ran gemacht, und ein wenig gegoogelt zwecks der WLAN-LED. Ich wollte einfach nicht glauben, dass diese nicht leuchtet wenn das WLAN aktiv ist bzw blinkt wenn Traffic drüber geht. Nach 20min wusste ich folgendes:</p>
<ul>
<li>"linux-backports-modules-2.6.24-16-generic" für ubuntu installieren und dann soll es gehen bzw …</li></ul><p>Habe mich letzte Woche ran gemacht, und ein wenig gegoogelt zwecks der WLAN-LED. Ich wollte einfach nicht glauben, dass diese nicht leuchtet wenn das WLAN aktiv ist bzw blinkt wenn Traffic drüber geht. Nach 20min wusste ich folgendes:</p>
<ul>
<li>"linux-backports-modules-2.6.24-16-generic" für ubuntu installieren und dann soll es gehen bzw leuchtet sie dann, wenn das WLAN-Modul aktiv ist - Nee auch doof</li>
<li>Dann wieder irgend einen Patch für 2.6.24 gefunden - auch nur leuchten</li>
<li>Zwischen durch ein kleiner Kommentar, dass es mit dem aktuellen 2.6.26, und aktivieren von zwei Optionen im Kernel (CONFIG_IWLWIFI_LEDS & CONFIG_NEW_LEDS) leuchten und blinken soll !</li>
</ul>
<p>Okay getestet - ne geht auch nicht...dann aber noch die Option CONFIG_IWL3945_LEDS gefunden, und in der Kombination mit der CONFIG_NEW_LEDS, leuchtet und blinkt nun meine WLAN-LED :)</p>
<p><a href="https://blog.devnu11.net/wp-content/uploads/config-2626.3">config-2.6.26.3</a></p>
<p>Hier dann auch gleich meine Kconfig für das IBM Thinkpad R61. Viel Spass damit !</p>Google Chrome - Betatest2008-09-02T21:29:00+02:002008-09-02T21:29:00+02:00rmicheltag:blog.devnu11.net,2008-09-02:/2008/09/google-chrome-betatest.html<p>Gleich geladen und installiert...und so sieht er aus (mehr Bilder <a href="https://gallery.devnu11.net/main.php/v/technical/software/" title="Mehr Bilder">hier !</a>)</p>
<p>[caption id="" align="alignnone" width="640" caption="Google Chrome"]<a href="https://gallery.devnu11.net/main.php?g2_view=core.DownloadItem&g2_itemId=820&g2_serialNumber=2" title="Google Chrome"><img alt="Google Chrome" height="598" src="https://gallery.devnu11.net/main.php?g2_view=core.DownloadItem&g2_itemId=819&g2_serialNumber=2" width="640"></a>[/caption]<br>
Der erste Eindruck: Sehr schnell, Übersichtlich und Aufgeräumt.</p>
<p>Sollte mal eine Seite einen Fehler im Rendern erzeugen, dann stürzt nur der Tab ab und nicht der ganze Browser …</p><p>Gleich geladen und installiert...und so sieht er aus (mehr Bilder <a href="https://gallery.devnu11.net/main.php/v/technical/software/" title="Mehr Bilder">hier !</a>)</p>
<p>[caption id="" align="alignnone" width="640" caption="Google Chrome"]<a href="https://gallery.devnu11.net/main.php?g2_view=core.DownloadItem&g2_itemId=820&g2_serialNumber=2" title="Google Chrome"><img alt="Google Chrome" height="598" src="https://gallery.devnu11.net/main.php?g2_view=core.DownloadItem&g2_itemId=819&g2_serialNumber=2" width="640"></a>[/caption]<br>
Der erste Eindruck: Sehr schnell, Übersichtlich und Aufgeräumt.</p>
<p>Sollte mal eine Seite einen Fehler im Rendern erzeugen, dann stürzt nur der Tab ab und nicht der ganze Browser. Man kann im Task-Manager sehen, wieviel RAM & CPU-Zeit jeder Tab und jedes Plugins benötigt.</p>
<p>Mal sehen was Google daraus macht und wie Mozilla reagieren wird !</p>Tolles Wetter...Regen, Regen und Regen :)2008-08-15T14:53:00+02:002008-08-15T14:53:00+02:00rmicheltag:blog.devnu11.net,2008-08-15:/2008/08/tolles-wetterregen-regen-und-regen.html<p>Eigentlich wollte ich ja vom 11.08. bis zum 16.08.2008 in Schweden sein und nach Stockholm fahren - mit dem Fahrrad. Nur leider meinte das Wetter es nicht wirklich gut mit mir :(</p>
<p><a href="https://blog.devnu11.net/wp-content/uploads/sweden_weather.jpg"><img alt="" class="aligncenter size-medium wp-image-101" height="260" src="https://blog.devnu11.net/wp-content/uploads/sweden_weather-300x260.jpg" title="sweden_weather" width="300"></a></p>
<p>Toll oder ? Und dabei hatte <a href="http://blog.barfoo.org">Christian</a> noch auf der Heimfahrt von der Arbeit gesagt - "Soll ma schön …</p><p>Eigentlich wollte ich ja vom 11.08. bis zum 16.08.2008 in Schweden sein und nach Stockholm fahren - mit dem Fahrrad. Nur leider meinte das Wetter es nicht wirklich gut mit mir :(</p>
<p><a href="https://blog.devnu11.net/wp-content/uploads/sweden_weather.jpg"><img alt="" class="aligncenter size-medium wp-image-101" height="260" src="https://blog.devnu11.net/wp-content/uploads/sweden_weather-300x260.jpg" title="sweden_weather" width="300"></a></p>
<p>Toll oder ? Und dabei hatte <a href="http://blog.barfoo.org">Christian</a> noch auf der Heimfahrt von der Arbeit gesagt - "Soll ma schön regnen am Wochenende..."</p>
<p>Ich nehms aber keinem böse ! Heute gehts ja wieder nach Schweden :)</p>
<p>PS. Ja ich war am Sonntag (10.08.) schon in Schweden - Warum ? Wieso ? Längere Geschichte....</p>Reifenumfang ermitteln2008-08-15T14:26:00+02:002008-08-15T14:26:00+02:00rmicheltag:blog.devnu11.net,2008-08-15:/2008/08/reifenumfang-ermitteln.html<p>Da ich für mein Sigma 1606L (Kabel) den zweiten Fahrradadapter mir zugelegt hatte, wurde die Reifenumfangberechnung wieder fällig.</p>
<p>Damit ich es nicht wieder vergesse, hier nun die Notiz an mich selber ;)</p>
<p>Ich fahre <a href="http://www.schwalbe.de/ger/de/fahrrad/on_tour/produktgruppe/produkt/?ID_Einsatzbereich=2&ID_Produktgruppe=21&ID_Produkt=58&ID_Artikel=218&info=1">Schwalbe Marathon</a> vorne und Schwalbe Marathon Plus hinten.</p>
<p>Auf dem Marathon vorne steht <strong>42 x 622</strong>. Diese …</p><p>Da ich für mein Sigma 1606L (Kabel) den zweiten Fahrradadapter mir zugelegt hatte, wurde die Reifenumfangberechnung wieder fällig.</p>
<p>Damit ich es nicht wieder vergesse, hier nun die Notiz an mich selber ;)</p>
<p>Ich fahre <a href="http://www.schwalbe.de/ger/de/fahrrad/on_tour/produktgruppe/produkt/?ID_Einsatzbereich=2&ID_Produktgruppe=21&ID_Produkt=58&ID_Artikel=218&info=1">Schwalbe Marathon</a> vorne und Schwalbe Marathon Plus hinten.</p>
<p>Auf dem Marathon vorne steht <strong>42 x 622</strong>. Diese zwei Werte sind wichtig für die Berechnung.</p>
<p>Radumfang = 2 * Pi * <strong>42</strong> + Pi * <strong>622</strong> = 2217,964 (gekürzt)</p>
<p>Fertig.</p>RDP via SSH - Alles muss über einen Port....2008-07-15T23:53:00+02:002008-07-15T23:53:00+02:00rmicheltag:blog.devnu11.net,2008-07-15:/2008/07/rdp-via-ssh-alles-muss-uber-einen-port.html<p>Wir haben eine soooo "tolle" Firewall auf Arbeit und der Cisco VPN Concentrator ist auch nicht gerade das gelbe vom Ei. Also einen Rechner fertig gemacht, der genau einen Port offen hat - den SSHd.</p>
<p>[caption id="attachment_65" align="aligncenter" width="300" caption="SSH Tunnel"]<a href="https://blog.devnu11.net/wp-content/uploads/netzwerk_ssh_tunnel.jpg"><img alt="" class="size-medium wp-image-65" height="242" src="https://blog.devnu11.net/wp-content/uploads/netzwerk_ssh_tunnel-300x242.jpg" title="SSH Tunnel" width="300"></a>[/caption]</p>
<p>Damit man sich das mal …</p><p>Wir haben eine soooo "tolle" Firewall auf Arbeit und der Cisco VPN Concentrator ist auch nicht gerade das gelbe vom Ei. Also einen Rechner fertig gemacht, der genau einen Port offen hat - den SSHd.</p>
<p>[caption id="attachment_65" align="aligncenter" width="300" caption="SSH Tunnel"]<a href="https://blog.devnu11.net/wp-content/uploads/netzwerk_ssh_tunnel.jpg"><img alt="" class="size-medium wp-image-65" height="242" src="https://blog.devnu11.net/wp-content/uploads/netzwerk_ssh_tunnel-300x242.jpg" title="SSH Tunnel" width="300"></a>[/caption]</p>
<p>Damit man sich das mal vorstellen kann ( Router, Switche usw fehlen).</p>
<p>Auf unsere paar Windows Server kommen wir via RDP auf. Damit ich nicht immer alles per Hand tippen muss, bzw in der history gucken, wie der Befehl gleich war, hier ein faule-Leute-Script ;)</p>
<div class="highlight"><pre><span></span><code><span class="ch">#!/bin/bash</span>
<span class="c1">#</span>
<span class="c1">#</span>
<span class="nv">SSH_OPTIONS</span><span class="o">=</span><span class="s2">""</span><span class="w"> </span><span class="c1"># additional options for ssh command</span>
<span class="nv">RDP_PORT</span><span class="o">=</span><span class="s2">"3389"</span>
<span class="nv">RDP_OPTIONS</span><span class="o">=</span><span class="s2">"-z -g 1024x768 -a 16 -k de"</span>
<span class="nv">LOCAL_IP</span><span class="o">=</span><span class="s2">"127.0.0.2"</span>
<span class="c1"># Usage info</span>
<span class="k">if</span><span class="w"> </span><span class="o">[</span><span class="w"> </span><span class="s2">"</span><span class="nv">$1</span><span class="s2">"</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">""</span><span class="w"> </span><span class="o">]</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="k">then</span>
<span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="s2">"Usage: </span><span class="nv">$0</span><span class="s2"> rdp-target ssh-target [ssh-port]"</span>
<span class="w"> </span><span class="nb">exit</span>
<span class="k">fi</span>
<span class="k">if</span><span class="w"> </span><span class="o">[</span><span class="w"> </span><span class="s2">"</span><span class="nv">$2</span><span class="s2">"</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">""</span><span class="w"> </span><span class="o">]</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="k">then</span>
<span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="s2">"Usage: </span><span class="nv">$0</span><span class="s2"> rdp-target ssh-target [ssh-port]"</span>
<span class="w"> </span><span class="nb">exit</span>
<span class="k">fi</span>
<span class="k">if</span><span class="w"> </span><span class="o">[</span><span class="w"> </span><span class="s2">"</span><span class="nv">$3</span><span class="s2">"</span><span class="w"> </span>!<span class="o">=</span><span class="w"> </span><span class="s2">""</span><span class="w"> </span><span class="o">]</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="k">then</span>
<span class="w"> </span><span class="nv">SSH_OPTIONS</span><span class="o">=</span><span class="s2">"</span><span class="nv">$SSH_OPTIONS</span><span class="s2"> -p </span><span class="nv">$3</span><span class="s2">"</span>
<span class="k">fi</span>
<span class="c1"># Set target host and SSH target</span>
<span class="nv">TARGET_HOST</span><span class="o">=</span><span class="s2">"</span><span class="nv">$1</span><span class="s2">"</span>
<span class="nv">SSH_TARGET</span><span class="o">=</span><span class="s2">"</span><span class="nv">$2</span><span class="s2">"</span>
<span class="c1">#</span>
<span class="nv">TMP</span><span class="o">=</span><span class="sb">`</span><span class="nb">echo</span><span class="w"> </span><span class="nv">$TARGET_HOST</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>cut<span class="w"> </span>-d<span class="s1">'.'</span><span class="w"> </span>-f<span class="w"> </span><span class="m">4</span><span class="sb">`</span>
<span class="k">if</span><span class="w"> </span><span class="o">[</span><span class="w"> </span><span class="nv">$TMP</span><span class="w"> </span>-gt<span class="w"> </span><span class="m">100</span><span class="w"> </span><span class="o">]</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="k">then</span>
<span class="w"> </span><span class="nv">LOCAL_PORT</span><span class="o">=</span><span class="s2">"26</span><span class="nv">$TMP</span><span class="s2">"</span>
<span class="k">else</span>
<span class="w"> </span><span class="nv">LOCAL_PORT</span><span class="o">=</span><span class="s2">"260</span><span class="nv">$TMP</span><span class="s2">"</span>
<span class="k">fi</span>
ssh<span class="w"> </span><span class="nv">$SSH_OPTIONS</span><span class="w"> </span>-f<span class="w"> </span>-L<span class="w"> </span><span class="nv">$LOCAL_IP</span>:<span class="nv">$LOCAL_PORT</span>:<span class="nv">$TARGET_HOST</span>:<span class="nv">$RDP_PORT</span><span class="w"> </span><span class="nv">$SSH_TARGET</span><span class="w"> </span>sleep<span class="w"> </span><span class="m">10</span>
rdesktop<span class="w"> </span><span class="nv">$RDP_OPTIONS</span><span class="w"> </span><span class="nv">$LOCAL_IP</span>:<span class="nv">$LOCAL_PORT</span><span class="w"> </span><span class="p">&</span>
</code></pre></div>
<p>Es baut die SSH Verbindung auf, zusammen mit dem Befehl <code>sleep 10</code>, damit die Verbindung automatisch schließt wenn rdesktop beendet wird. Desweiteren nimmt es von der IP, die letzten 8 Bit und bildet fast dynamisch den lokalen Port. Der Rest sollte selbst erklärend sein.</p>
<p>Der Aufruf für das Netzwerk oben wäre dann: <code>`sshrdp 192.168.26.20 root@192.168.26.254</code> !</p>
<p>Hier das Script zum runterladen: <a href="https://blog.devnu11.net/wp-content/uploads/sshrdp">sshrdp</a></p>Debian Lenny at Thinkpad R612008-07-09T14:24:00+02:002008-07-09T14:24:00+02:00rmicheltag:blog.devnu11.net,2008-07-09:/2008/07/debian-lenny-at-thinkpad-r61.html<p>Hab heute mal meine Konfiguration für mein Thinkpad R61 unter Debian Lenny niedergeschrieben und <a href="https://blog.devnu11.net/thinkpad/">veröffentlicht</a>. Hoffe ich kann damit ein paar Leuten helfen....</p>
<p>Auch gelinkt auf <a href="http://tuxmobil.org/ibm.html">tuxmobil.org</a> bzw. tuxmobil.de !</p>Karts & Wohnheime2008-06-25T10:32:00+02:002008-06-25T10:32:00+02:00rmicheltag:blog.devnu11.net,2008-06-25:/2008/06/karts-wohnheime.html<p>Nach der Berufsschule hat man viel viel Zeit. Da kommt es schon mal vor, dass man vor lauter Langeweile von Neustrelitz nach Neubrandenburg fährt um Kart zufahren. Ab auf die Strecke und los. Die ersten 15min waren wir zu dritt auf der Strecke.</p>
<p>Karsten war mit 01.10:45 der …</p><p>Nach der Berufsschule hat man viel viel Zeit. Da kommt es schon mal vor, dass man vor lauter Langeweile von Neustrelitz nach Neubrandenburg fährt um Kart zufahren. Ab auf die Strecke und los. Die ersten 15min waren wir zu dritt auf der Strecke.</p>
<p>Karsten war mit 01.10:45 der Erste, gefolgt von meiner Person mit 01.10:46. Lustig ist, dass wir beide diese Zeit in Runde 10 erreichten. Nach einer kleinen Pause ging es an die zweiten 15 Minuten. Leider nach 2 Runden nur noch zu zweit :(</p>
<p>Aber dafür gaben Maik und ich uns nichts auf der Strecke. Nach anfänglichen Zögen und einem freundlichen "Ja fahr, ich hab dich gleich", merkte ich schnell, dass Maik weiter Kampflinie fährt. Da war klar - Krieg! Nach 2 oder 3 Runden war ich vorbei, aber Maik blieb an meinem Heck. Auf Grund dieses echt geilen Rennens, haben wir die Zeiten aus dem ersten Lauf noch mal gesteigert. 01.09:60 für Maik und 01.09:00 für mich.</p>
<p>Tja, dass war der schöne Teil !</p>
<p>Aufgrund der schulischen Situation wechseln wir von der eigentlich gut ausgestatten "Beruflichen Schule des Landkreis Mecklenburg-Strelitz" nach Neubrandenburg (Fachinformatiker) - Warum, Wieso - Keine Ahnung! Irgendwo meine wohl jemand, das wäre besser ......</p>
<p>Schulisch ein totaler Abstieg - Aber Wohnheim-technisch ein klarer Aufstieg (und alles dicht bei der Kartbahn ;)</p>
<p>Mal sehen wann wir wieder die Kartbahn besuchen :)</p>GPS-Tour: Greifswald - Ludwigsburg2008-06-04T08:20:00+02:002008-06-04T08:20:00+02:00rmicheltag:blog.devnu11.net,2008-06-04:/2008/06/gps-tour-greifswald-ludwigsburg.html<p><img alt="gps-tour" src="https://blog.devnu11.net/images/ludwigsburg.jpg"></p>
<p><a href="https://blog.devnu11.net/extra/ludwigsburg.gpx">GPX Datei</a></p>
<ul>
<li>49.9 Km</li>
<li>Fahrzeit 2:00h mit 21km/h Wind aus Nord</li>
</ul>Pound einrichten....2008-06-03T15:24:00+02:002008-06-03T15:24:00+02:00rmicheltag:blog.devnu11.net,2008-06-03:/2008/06/pound-einrichten.html<p>Wollen wir uns nun langsam mal der Pound Konfiguration widmen.</p>
<p>Hier ist ein sehr einfaches Beispiel. Die lokalen Webserver hören auf dem Port <code>81</code> und Pound darf auf Port 80 hören, wobei <code>192.168.1.3</code> die HA-IP Adresse wieder spiegelt.</p>
<div class="highlight"><pre><span></span><code><span class="c1">## Minimal sample pound.cfg</span>
<span class="c1">##</span>
<span class="c1">## see pound(8) for details …</span></code></pre></div><p>Wollen wir uns nun langsam mal der Pound Konfiguration widmen.</p>
<p>Hier ist ein sehr einfaches Beispiel. Die lokalen Webserver hören auf dem Port <code>81</code> und Pound darf auf Port 80 hören, wobei <code>192.168.1.3</code> die HA-IP Adresse wieder spiegelt.</p>
<div class="highlight"><pre><span></span><code><span class="c1">## Minimal sample pound.cfg</span>
<span class="c1">##</span>
<span class="c1">## see pound(8) for details</span>
<span class="c1">######################################################################</span>
<span class="c1">## global options:</span>
User<span class="w"> </span><span class="s2">"www-data"</span>
Group<span class="w"> </span><span class="s2">"www-data"</span>
<span class="c1">#RootJail "/chroot/pound"</span>
<span class="c1">## Logging: (goes to syslog by default)</span>
<span class="c1">## 0 no logging</span>
<span class="c1">## 1 normal</span>
<span class="c1">## 2 extended</span>
<span class="c1">## 3 Apache-style (common log format)</span>
LogLevel<span class="w"> </span><span class="m">1</span>
<span class="c1">## check backend every X secs:</span>
Alive<span class="w"> </span><span class="m">5</span>
<span class="c1">## use hardware-accelleration card supported by openssl(1):</span>
<span class="c1">#SSLEngine ""</span>
<span class="c1">######################################################################</span>
<span class="c1">## listen, redirect and ... to:</span>
<span class="c1">## redirect all requests on port 8080 ("ListenHTTP") to the local webserver (see "Service" below):</span>
ListenHTTP
<span class="w"> </span>Address<span class="w"> </span><span class="m">192</span>.168.1.3
<span class="w"> </span>Port<span class="w"> </span><span class="m">80</span>
<span class="w"> </span><span class="c1">## allow PUT and DELETE also (by default only GET, POST and HEAD)?:</span>
<span class="w"> </span>xHTTP<span class="w"> </span><span class="m">0</span>
<span class="w"> </span>Service
<span class="w"> </span>BackEnd
<span class="w"> </span>Address<span class="w"> </span><span class="m">192</span>.168.1.1
<span class="w"> </span>Port<span class="w"> </span><span class="m">81</span>
<span class="w"> </span>End
<span class="w"> </span>BackEnd
<span class="w"> </span>Address<span class="w"> </span><span class="m">192</span>.168.1.2
<span class="w"> </span>Port<span class="w"> </span><span class="m">81</span>
<span class="w"> </span>End
<span class="w"> </span>End
End
</code></pre></div>
<p>Installiert wird Pound einfach via <code>aptitude pound</code> und wieder dran denken das die <code>pound.cfg</code> auf beiden Servern gleich sein muss.</p>
<p>Bei unterschiedlich dimensionierten Servern können wir mir <code>Priority*</code> im <code>BackEnd</code>, die Last unterschiedlich auf der Server verteilen.</p>
<p>Weitere gute Beispiel-Konfigurationen findet man in der Manpage von Pound (<code>man pound</code>) !</p>
<p>In der <code>/etc/default/pound</code> müssen wir noch den Wert für <code>startup</code> gleich <code>1</code> setzen, damit Pound überhaupt startet.</p>
<p>Hier mal meine Konfiguration</p>
<div class="highlight"><pre><span></span><code><span class="c1">## Minimal sample pound.cfg</span>
<span class="c1">##</span>
<span class="c1">## see pound(8) for details</span>
<span class="c1">######################################################################</span>
<span class="c1">## global options:</span>
User<span class="w"> </span><span class="s2">"www-data"</span>
Group<span class="w"> </span><span class="s2">"www-data"</span>
RootJail<span class="w"> </span><span class="s2">"/var/pound/chroot"</span>
<span class="c1">## Logging: (goes to syslog by default)</span>
<span class="c1">## 0 no logging</span>
<span class="c1">## 1 normal</span>
<span class="c1">## 2 extended</span>
<span class="c1">## 3 Apache-style (common log format)</span>
LogLevel<span class="w"> </span><span class="m">1</span>
<span class="c1">## check backend every X secs:</span>
Alive<span class="w"> </span><span class="m">5</span>
<span class="c1">## use hardware-accelleration card supported by openssl(1):</span>
<span class="c1">#SSLEngine ""</span>
<span class="c1">######################################################################</span>
<span class="c1">## listen, redirect and ... to:</span>
<span class="c1">## redirect all requests on port 8080 ("ListenHTTP") to the local webserver (see "Service" below):</span>
ListenHTTP
<span class="w"> </span>Address<span class="w"> </span><span class="m">192</span>.168.1.1
<span class="w"> </span>Port<span class="w"> </span><span class="m">80</span>
<span class="w"> </span><span class="c1">## allow PUT and DELETE also (by default only GET, POST and HEAD)?:</span>
<span class="w"> </span>xHTTP<span class="w"> </span><span class="m">0</span>
<span class="w"> </span>Service
<span class="w"> </span>BackEnd
<span class="w"> </span>Address<span class="w"> </span><span class="m">192</span>.168.1.2
<span class="w"> </span>Port<span class="w"> </span><span class="m">81</span>
<span class="w"> </span>Priority<span class="w"> </span><span class="m">6</span>
<span class="w"> </span>End
<span class="w"> </span>BackEnd
<span class="w"> </span>Address<span class="w"> </span><span class="m">192</span>.168.1.3
<span class="w"> </span>Port<span class="w"> </span><span class="m">81</span>
<span class="w"> </span>Priority<span class="w"> </span><span class="m">3</span>
<span class="w"> </span>End
<span class="w"> </span>BackEnd
<span class="w"> </span>Address<span class="w"> </span><span class="m">192</span>.168.1.4
<span class="w"> </span>Port<span class="w"> </span><span class="m">81</span>
<span class="w"> </span>Priority<span class="w"> </span><span class="m">3</span>
<span class="w"> </span>End
<span class="w"> </span>End
<span class="w"> </span>Service
<span class="w"> </span>URL<span class="w"> </span><span class="s2">".*.(jpg|gif|png)"</span>
<span class="w"> </span>BackEnd
<span class="w"> </span>Address<span class="w"> </span><span class="m">192</span>.168.1.5
<span class="w"> </span>Port<span class="w"> </span><span class="m">81</span>
<span class="w"> </span>End
<span class="w"> </span>End
End
</code></pre></div>
<p><a href="http://www.apsis.ch/pound/">Homepage von pound</a></p>Die wohl teuersten Stifte der Welt - LinuxTag 20082008-06-02T17:35:00+02:002008-06-02T17:35:00+02:00rmicheltag:blog.devnu11.net,2008-06-02:/2008/06/die-wohl-teuersten-stifte-der-welt-linuxtag-2008.html<p><strong>Wir müssen alle bekloppt sein !</strong> Setzen uns in einen kleinen Raum, wo max. 24 Leute rein passen, bezahlen jeder 70 Euro (<strong>!</strong>) und bekommen einen Bleistift dafür !</p>
<p>Wer nun dabei war, oder davon schonmal gehört hat, der weiß worum es geht: LPI Zertifizierung !</p>
<p><img alt="" height="113" src="https://gallery.devnu11.net/main.php?g2_view=core.DownloadItem&g2_itemId=578&g2_serialNumber=2" width="150"></p>
<p>Ja sicher, wenn man es geschafft, dann hat …</p><p><strong>Wir müssen alle bekloppt sein !</strong> Setzen uns in einen kleinen Raum, wo max. 24 Leute rein passen, bezahlen jeder 70 Euro (<strong>!</strong>) und bekommen einen Bleistift dafür !</p>
<p>Wer nun dabei war, oder davon schonmal gehört hat, der weiß worum es geht: LPI Zertifizierung !</p>
<p><img alt="" height="113" src="https://gallery.devnu11.net/main.php?g2_view=core.DownloadItem&g2_itemId=578&g2_serialNumber=2" width="150"></p>
<p>Ja sicher, wenn man es geschafft, dann hat man wahlweise LPIC1, LPIC2 oder so gar LPIC3 in der Tasche oder einen Teil davon. Aber für die ersten 4-5 Wochen hat man nur einen 70 Euro teuren Bleistift :)</p>
<p>Als ich nachfragt wie lange es den jetzt dauert, meinte man zu mir 4-6 Wochen ! "Dafür haben Sie ja auch nur die hälfte bezahlt !" - Ähm, ja ? Ich hab die Hälfte bezahlt damit ich 4-6 Wochen auf mein Ergebnis warten muss, weil es in einem Paket nach Kanada zur Auswertung geht und dann wieder zurück (Hatte ich gesagt das es schriftlich war ?)</p>
<p>Warum ich nun 70 Euro "nur" bezahle ist mir also nicht ganz klar - Wir brauchen min. ein Bleistift, 2x A4 Blätter (1x Lösungsbogen + 1x gelbes Papier), die A4 Briefumschläge und dann noch 2 Monsterpackete für die Prüfungen inkl. Postgebühren.</p>
<p>Was schont also den Baum bestand mehr ? Prüfung am PC oder alles in schriftlicher Form ? Mir egal und ich hoffe einfach das ich meine 101+102 geschafft habe.</p>
<p>Aber nun mal zum LinuxTag 2008....<!--more--></p>
<p><img alt="" height="113" src="https://gallery.devnu11.net/main.php?g2_view=core.DownloadItem&g2_itemId=272&g2_serialNumber=2" width="150"><img alt="" height="113" src="https://gallery.devnu11.net/main.php?g2_view=core.DownloadItem&g2_itemId=339&g2_serialNumber=2" width="150"><img alt="" height="113" src="https://gallery.devnu11.net/main.php?g2_view=core.DownloadItem&g2_itemId=364&g2_serialNumber=2" width="150"><img alt="" height="113" src="https://gallery.devnu11.net/main.php?g2_view=core.DownloadItem&g2_itemId=379&g2_serialNumber=2" width="150"></p>
<p>Dieses Jahr fand der LinuxTag 2008 vom 28. Mai bis zum 31. Mail 2008 stand. Hin finden war kein Thema - einfach den ganzen Leuten folgen die z.B. KDE oder Debian Shirts an haben ;) Vom Alex bis zur Messe Süd S-Bahn Station (S75 oder S9) dauert es rund 25 Minuten. Kleiner Tip für die S-Bahn: MP3-Player ;). Da es um 10 Uhr mit den Vortragsprogramm los gehen sollte war ich schon gegen 9 Uhr da - was auch sehr gut war. Wenn man erstmal mitbekommen hat, das sich alles in 3 Ebenen abgespielt hat, und wo sich die einzeln Vortragssäle befinden ging alles schnell. 2 Rolltreppen und runter bzw hoch - fertig.</p>
<p>Viele nette Leute, interessante Dinge und ein gigantisches Vortragsprogramm (Auf dem Opening fiel die Zahl von 222 (!) Vorträgen). Leider waren die Vorträge nicht alle soooo spannend wie ich es gehofft hatte. Aber das wird jeder anderst sehen. Am Freitag war auch noch Keysigning-Party - sehr lustige Sache und für mich auch das erste mal! Für morgen steht dann auf dem Programm - GPG-Keys signieren. Der 7. Hacking Contest war auch ne coole Idee, besondert auf was für Ideen die Leute kommen z.B. Bits setzen beim einstecken der Maus, oder bei jedem "ls" wird ein nc Prozess gestartet. Evtl kann man ja nächstes Jahr selber mal mitmachen.</p>
<p><strong>Ich würd sagen, gelungende Sache und ein dickes Lob an die Orgas !</strong> Der Termin für den LinuxTag 2009 ( 24. bis 27. Juni ) steht schon im Kalender evtl. wird dann auch LPIC2 in Angriff genommen.</p>
<p><strong>Eins noch, am 01.11.2008 findet in Potsdam auch ein LinuxTag statt (auch wieder mit LPI) - mehr ist leider vom Flyer nicht mehr hängen geblieben :( Wer mehr weiß kann mir ja ne Mail schreiben.</strong></p>
<p>Bilder vom LinuxTag und vom Hacking Contest sind <a href="https://gallery.devnu11.net/main.php/v/opensource/lt2k8/">hier</a> zu finden.</p>XDA orbit 2 - Die zweite....2008-06-01T22:26:00+02:002008-06-01T22:26:00+02:00rmicheltag:blog.devnu11.net,2008-06-01:/2008/06/xda-orbit-2-die-zweite.html<p>Da nun etwas Zeit vergangen ist, hier meine Eindrücke und Fotos vom XDA orbit 2:</p>
<ul>
<li>Bei Sonnenschein kann man das Display sehr schlecht ablesen (Noch extremer ist es, wenn er gesperrt ist. Dann ist es ein raten wo der "Entsperren"-Button ist !)</li>
<li>GPS ist sehr genau, würde jetzt mal sagen …</li></ul><p>Da nun etwas Zeit vergangen ist, hier meine Eindrücke und Fotos vom XDA orbit 2:</p>
<ul>
<li>Bei Sonnenschein kann man das Display sehr schlecht ablesen (Noch extremer ist es, wenn er gesperrt ist. Dann ist es ein raten wo der "Entsperren"-Button ist !)</li>
<li>GPS ist sehr genau, würde jetzt mal sagen +/- 1 Meter</li>
<li>die 3 MP Kamera ist nur für Schnappschüsse geeignet</li>
<li>die kleinere Kamera liefert für Videotelefonie ein gutes Bild</li>
<li>gelegentlich etwas träge (z.B. beim Entsperren)</li>
<li>die "Touch-Tastatur" Eingabe ist super - muss man sich nur noch an das XT9 gewöhnen</li>
</ul>
<p>Ich geb meinen XDA nicht mehr her, esist ein Klasse Ersatz für mein altes SE K610i !</p>
<p><a href="https://gallery.devnu11.net/main.php?g2_view=core.DownloadItem&g2_itemId=280&g2_serialNumber=5" title="XDA Orbit 2"><img alt="" height="150" src="https://gallery.devnu11.net/main.php?g2_view=core.DownloadItem&g2_itemId=279&g2_serialNumber=5" width="113"></a><br>
<a href="https://gallery.devnu11.net/main.php?g2_view=core.DownloadItem&g2_itemId=316&g2_serialNumber=2" title="XDA Orbit 2"><img alt="" height="113" src="https://gallery.devnu11.net/main.php?g2_view=core.DownloadItem&g2_itemId=315&g2_serialNumber=2" width="150"></a></p>
<p>Noch mehr Bilder sind <a href="https://gallery.devnu11.net/main.php/v/technical/orbit2/" title="Bilder">hier</a> zu finden.</p>o2 XDA Orbit 2 / HTC Touch Cruise / HTC Polaris2008-05-25T00:56:00+02:002008-05-25T00:56:00+02:00rmicheltag:blog.devnu11.net,2008-05-25:/2008/05/o2-xda-orbit-2-htc-touch-cruise-htc-polaris.html<p>Neues Spielzeug !</p>
<p>Durch meine Vertragsverlängerung wurde mein altes Sony Ericsson K610i, welches mir gute Dienste leistete, abgelöst durch den o2 XDA orbit 2 oder auch <a href="http://www.htc.com/de/product.aspx?id=11488">HTC Touch Cruise</a> (Codename <a href="http://www.htc.com/de/product.aspx?id=11488">HTC Polaris</a>).</p>
<p>Nach einer Lieferzeit von einer Woche, hatte ich ihn nun endlich in meinen Händen. Positiv ist mir aufgefallen, dass …</p><p>Neues Spielzeug !</p>
<p>Durch meine Vertragsverlängerung wurde mein altes Sony Ericsson K610i, welches mir gute Dienste leistete, abgelöst durch den o2 XDA orbit 2 oder auch <a href="http://www.htc.com/de/product.aspx?id=11488">HTC Touch Cruise</a> (Codename <a href="http://www.htc.com/de/product.aspx?id=11488">HTC Polaris</a>).</p>
<p>Nach einer Lieferzeit von einer Woche, hatte ich ihn nun endlich in meinen Händen. Positiv ist mir aufgefallen, dass unmengen Zubehör bei liegt wie z.B. die KfZ-Halterung, die 1GB mircoSD Karte, Display-Schutzfolie, die Tasche und das Headset. Leider leider hat das Gerät kein 2.5" bzw 3.5" Klinke-Ausgang für den Ton. Das Headset nutzt auch den MiniUSB Port des PDAs.</p>
<p>Die KfZ-Halterung ist ein wenig schwerer zusammen zustecken. Aber mit ein wenig Kraft geht es ! Sie hält super bei Kopfsteinpflaster und macht auch sonst einen guten Eindruck. Beim anpassen des flexiblen Stückes braucht es auch ein wenig Kraft.</p>
<p>Die mitgelieferte Speicherkarte ist schon mit etwa 390 MB belegt. Hier liegt das Kartenmaterial für Deutschland, Österreich und Schweiz. Als Software kommt TomTom Navigator 6 zum Einsatz.</p>
<p>Der ganze PDA macht einen guten Eindruck, die 400 Mhz CPU, 256MB Speicher und 128MB RAM lassen Platz für weitere Anwendungen. Etwa 95MB stehen dem User noch zur Verfügung um z.B. Programme zu installieren.</p>
<p>Ein XDA mit GPS, WLAN, Bluetooth, HSDPA, UMTS und 3 MP Kamera machen Lust auf mehr. Die nächsten Wochen werden zeigen wie Leistungsfähigkeit das Gerät wirklich ist.</p>GPS-Tour: Prohn - Barhöft2008-05-05T15:30:00+02:002008-05-05T15:30:00+02:00rmicheltag:blog.devnu11.net,2008-05-05:/2008/05/tour-prohn-barhoft.html<p><img alt="gps-tour" src="https://blog.devnu11.net/images/prohn.jpg"></p>
<p><a href="https://blog.devnu11.net/extra/20080502.gpx">GPX Datei</a></p>
<ul>
<li>22 Km</li>
<li>Fahrzeit inkl Pause 1:15h</li>
</ul>Holz-Kocher [Selfmade]2008-05-05T10:26:00+02:002008-05-05T10:26:00+02:00rmicheltag:blog.devnu11.net,2008-05-05:/2008/05/holz-kocher-selfmade.html<p>Bastelstunde :)</p>
<p>Ich hatte im Internet eine Bauanleitung für einen Holzkocher gefunden und nachgebaut. Hier die Ergebnisse:<br>
<a href="https://gallery.devnu11.net/main.php?g2_view=core.DownloadItem&g2_itemId=182&g2_serialNumber=2"><img alt="" src="https://gallery.devnu11.net/main.php?g2_view=core.DownloadItem&g2_itemId=181&g2_serialNumber=2"></a><a href="https://gallery.devnu11.net/main.php?g2_view=core.DownloadItem&g2_itemId=189&g2_serialNumber=2"><img alt="" src="https://gallery.devnu11.net/main.php?g2_view=core.DownloadItem&g2_itemId=188&g2_serialNumber=2"></a></p>
<p>Sorry für die schlechten Bilder - Digitalkamera war leider nicht zur Hand.</p>
<p>Befeuert werden kann das kleine Ding, mit allem was Trocken und in Reichweite sich befindet. Aber am besten trockenes Holz. Meine Ausführung ist …</p><p>Bastelstunde :)</p>
<p>Ich hatte im Internet eine Bauanleitung für einen Holzkocher gefunden und nachgebaut. Hier die Ergebnisse:<br>
<a href="https://gallery.devnu11.net/main.php?g2_view=core.DownloadItem&g2_itemId=182&g2_serialNumber=2"><img alt="" src="https://gallery.devnu11.net/main.php?g2_view=core.DownloadItem&g2_itemId=181&g2_serialNumber=2"></a><a href="https://gallery.devnu11.net/main.php?g2_view=core.DownloadItem&g2_itemId=189&g2_serialNumber=2"><img alt="" src="https://gallery.devnu11.net/main.php?g2_view=core.DownloadItem&g2_itemId=188&g2_serialNumber=2"></a></p>
<p>Sorry für die schlechten Bilder - Digitalkamera war leider nicht zur Hand.</p>
<p>Befeuert werden kann das kleine Ding, mit allem was Trocken und in Reichweite sich befindet. Aber am besten trockenes Holz. Meine Ausführung ist aus alten PC-Gehäusen entstanden und wiegt etwa 347g ! Zusätzlich habe ich versucht aus Edelstahlstangen, eine Art Grillrost zubauen (Fotos folgen)</p>
<p><strong>Tipps:</strong></p>
<ul>
<li>Am besten einen extra Alutopf dafür verwenden - rußt extrem !</li>
<li>Gut vorheizen, dann gehts super</li>
</ul>
<p>Mein Gill werde ich nächstes Wochenende ausprobieren und dann Berichten wie gut/schlecht es geht !</p>
<p><a href="http://www.nimblewillnomad.com/stove.htm">Link zur Bauanleitung</a></p>Die Qual der Wahl2008-04-29T16:06:00+02:002008-04-29T16:06:00+02:00rmicheltag:blog.devnu11.net,2008-04-29:/2008/04/die-qual-der-wahl.html<p>Urlaub ist die schönste Zeit des Jahres...sicher, aber im Trockenen !</p>
<p>Damit es trocken ist, muss/sollte dieses Jahr ein neues Zelt her. Hintergrund: Als wir vor zwei Jahren in Schweden mit dem Fahrrad unterwegs waren, hatten wir nicht gerade das beste Wetter. 2-3 Tage (fast) Dauerregen machen nicht mehr …</p><p>Urlaub ist die schönste Zeit des Jahres...sicher, aber im Trockenen !</p>
<p>Damit es trocken ist, muss/sollte dieses Jahr ein neues Zelt her. Hintergrund: Als wir vor zwei Jahren in Schweden mit dem Fahrrad unterwegs waren, hatten wir nicht gerade das beste Wetter. 2-3 Tage (fast) Dauerregen machen nicht mehr Spass wenn das Zelt (Hersteller NoName) undicht wird. Da ich dieses Jahr ein längere Tour plane, möchte ich mir keine Gedanken über das Zelt machen z.B. "Hält es heute dicht?" usw.</p>
<p>Der Vater meiner Freundin fand einen Tschechischen Hersteller <a href="http://en.huskycz.cz/">Husky</a> im Internet. Dessen Preis/Leistungsverhältnis ist für mich persönlich "<strong>Sehr Gut</strong>". Hier zum Beispiel das <a href="http://en.huskycz.cz/stany_det.asp?IDr=1&IDp=4">Husky Extreme Falcon</a>.</p>
<ul>
<li>Snow Flaps</li>
<li>Alugestänge</li>
<li>6000mm Wassersäule für das Außenzelt</li>
<li>Außenzelt mit Ripstop</li>
<li>10000mm Wassersäule für den Boden</li>
<li>Ablagenetz im oberen Teil des Zeltes</li>
<li>3,4 kg</li>
</ul>
<p>Schade ist, dass es von der Extrem-Serie keine Tunnelzelte gibt. Husky führt zwar in der Outdoor-Serie 2 oder 3 Tunnelzelte, nur diese haben Fiberglasstangen. Deshalb die Suche nach weiteren Zelten in der Preisklasse 180 - 250 Euro. Warum Tunnelzelte ? Damit man bei Regen auch mal draußen geschützt "sitzen" oder Essen warm machen kann.</p>
<p>Da viele auf der Suche nach guten Zelten sind, habe ich meinen (technischen) Vergleich für Tunnelzelte in der Preisklasse 180 Euro bis 250 Euro mal hochgeladen.</p>
<p><a href="https://blog.devnu11.net/wp-content/uploads/zelte.pdf">Vergleich Zelte</a></p>
<p>Für mich kommen folgende Zelte in Frage:</p>
<ul>
<li><a href="http://intranet.tatonka.com/infosys/infocgi/artinfo1.dll?2555&0" title="Tatonka Grönladn 2">Tatonka Grönland 2</a></li>
<li><a href="http://www.jack-wolfskin.com/JW_CATALOG/de/Ausruestung/Tunnelzelte/TUNDRA_II_RT/Details.aspx?sk=2c360a2f-76f2-4e00-bea4-dce05666f029&baseUrl=%2fJW_CATALOG%2fDefault.aspx%3fcatId%3d57%265">Jack Wolfskin Tundra 2</a></li>
<li><a href="http://www.wechsel-tents.de/www/index.php?go=PRODUCTS&catalog=663&product=757&lan=de">Wechsel Tents Intrepid 2</a></li>
</ul>
<p>Leider hat nur das Tatonka Grönland 2 eine Wassersäule von 8000mm für das Außenzelt. Dafür bietet das Tundra 2 mit 4000mm Wassersäule einen größeren Schlafplatz. Ist alles schon nicht so einfach.</p>
<p>Hier noch kurz die Vorlage für den Acrobat Reader (<a href="https://blog.devnu11.net/wp-content/uploads/vorlage.pdf">pdf</a>) und Microsoft Excel (<a href="https://blog.devnu11.net/wp-content/uploads/vorlage.xls">xls</a>), falls jemand andere Zelttypen vergleichen möchte.</p>
<p>Wer jetzt einen deutschen Vertieb sucht für Husky Produkte schaut einfach mal auf <a href="http://www.husky-outdoorshop.de">Link</a> vorbei.</p>
<p><strong>Update:</strong> Das Jack Wolfskin Tundra 2 hat das Rennen gemacht !</p>Nagios3 @ Debian Etch2008-04-23T14:31:00+02:002008-04-23T14:31:00+02:00rmicheltag:blog.devnu11.net,2008-04-23:/2008/04/nagios3-debian-etch-pakete.html<p>Nagios 3 (inkl. pnp) ist unter Debian Etch mit Hilfe der Pakete von svelt (<a href="http://people.teamix.net/~svelt/debian/etch/">http://people.teamix.net/~svelt/debian/etch/</a>) sehr einfach geworden.</p>
<p>Nur wenn man versucht den Link "<strong>Disable notifications for this service</strong>" für einen Service zu aktivieren, bekommt man eine Fehlermeldung ala :</p>
<div class="highlight"><pre><span></span><code>Error:<span class="w"> </span>Could<span class="w"> </span>not<span class="w"> </span>stat<span class="o">()</span><span class="w"> </span><span class="nb">command …</span></code></pre></div><p>Nagios 3 (inkl. pnp) ist unter Debian Etch mit Hilfe der Pakete von svelt (<a href="http://people.teamix.net/~svelt/debian/etch/">http://people.teamix.net/~svelt/debian/etch/</a>) sehr einfach geworden.</p>
<p>Nur wenn man versucht den Link "<strong>Disable notifications for this service</strong>" für einen Service zu aktivieren, bekommt man eine Fehlermeldung ala :</p>
<div class="highlight"><pre><span></span><code>Error:<span class="w"> </span>Could<span class="w"> </span>not<span class="w"> </span>stat<span class="o">()</span><span class="w"> </span><span class="nb">command</span><span class="w"> </span>file<span class="w"> </span><span class="s1">'/var/lib/nagios3/rw/nagios.cmd'</span>!
</code></pre></div>
<p>Lösung:</p>
<div class="highlight"><pre><span></span><code>/etc/init.d/nagios3<span class="w"> </span>stop
dpkg-statoverride<span class="w"> </span>--update<span class="w"> </span>--add<span class="w"> </span>nagios<span class="w"> </span>www-data<span class="w"> </span><span class="m">2710</span><span class="w"> </span>/var/lib/nagios3/rw
dpkg-statoverride<span class="w"> </span>--update<span class="w"> </span>--add<span class="w"> </span>nagios<span class="w"> </span>nagios<span class="w"> </span><span class="m">751</span><span class="w"> </span>/var/lib/nagios3
/etc/init.d/nagios3<span class="w"> </span>start
</code></pre></div>
<p>Jetzt sollte es gehen.</p>Kernel 2.6.25 @ Thinkpad R612008-04-19T09:45:00+02:002008-04-19T09:45:00+02:00rmicheltag:blog.devnu11.net,2008-04-19:/2008/04/kernel-2625-thinkpad-r61.html<p>Seit 2 Tagen ist der 2.6.25 draußen. Hier die <a href="https://blog.devnu11.net/wp-content/uploads/config-2.6.25">Kconfig</a> für ein IBM/Lenovo Thinkpad R61.</p>
<div class="highlight"><pre><span></span><code>root@sedna<span class="w"> </span>~<span class="w"> </span><span class="o">[</span><span class="m">0</span><span class="o">]</span><span class="w"> </span><span class="c1"># cat /usr/src/linux-2.6.25/.config | grep -v ^# | grep -v ^$ | wc -l</span>
<span class="m">504</span>
</code></pre></div>
<p>Viel Spass damit :)</p>Legal Musik runterladen....2008-04-17T23:19:00+02:002008-04-17T23:19:00+02:00rmicheltag:blog.devnu11.net,2008-04-17:/2008/04/legal-musik-runterladen.html<p>Beim hören des letzten <a href="http://chaosradio.ccc.de/" title="Chaosradio">Chaosradio</a>s heute, hatte ein Anrufer ein Internetportal für Musik genannt. Nach ein paar Minuten, fand ich das besagte Portal auch. Alle Werke dort stehen unter der <strong>Creative Commons.</strong></p>
<p><a href="http://www.jamendo.com">http://www.jamendo.com</a></p>
<p>Das Portal bietet Direktdownloads an, aber auch BitTorrent- und eMule-Links.</p>
<p>Wer ein wenig …</p><p>Beim hören des letzten <a href="http://chaosradio.ccc.de/" title="Chaosradio">Chaosradio</a>s heute, hatte ein Anrufer ein Internetportal für Musik genannt. Nach ein paar Minuten, fand ich das besagte Portal auch. Alle Werke dort stehen unter der <strong>Creative Commons.</strong></p>
<p><a href="http://www.jamendo.com">http://www.jamendo.com</a></p>
<p>Das Portal bietet Direktdownloads an, aber auch BitTorrent- und eMule-Links.</p>
<p>Wer ein wenig Zeit hat, sollte ruhig mal durchschauen was es dort alles im Angebot gibt. Persönlich hatte ich einfach mal nach schwedischer Musik (Yeah!) geschaut und auch gleich was gutes gefunden.</p>
<p>Tada! Die Gruppe <strong>Wire Moves</strong> aus Växjö in Schweden. Gar nicht mal so schlecht !</p>
<object width="350" height="170" data="http://www.jamendo.com/get/track/id/album/id/playerpage/4469/?item_o=track_no_asc&n=all&player_height=170&player_type=xspfplayer_extended&player_width=350&playercode_type=generic" style="border:0;width:350px;height:170px;" type="text/html"> </object>Home Server2008-04-15T18:26:00+02:002008-04-15T18:26:00+02:00rmicheltag:blog.devnu11.net,2008-04-15:/2008/04/home-server.html<p>Ähm...was soll ich sagen....</p>
<p><a href="http://www.amazon.com/Mommy-Why-There-Server-House/dp/160530641X"><img alt="Homer Server" class="alignnone" src="http://ecx.images-amazon.com/images/I/51SoJzZvfLL._SL500_AA240_.jpg"></a></p>Debian Lenny und SixXS - IPv6 Tunnel2008-04-15T16:43:00+02:002008-04-15T16:43:00+02:00rmicheltag:blog.devnu11.net,2008-04-15:/2008/04/debian-lenny-und-sixxs-ipv6.html<p>Hier eine kleine Hilfe, für alle die Versuchen unter Debian einen IPv6 Tunnel zum laufen zubekommen.</p>
<p>Vorraussetzung ist, dass der Tunnel-Typ <strong>6in4-static</strong> ist (Hier ist eure statische IP die Authentifizierung gegenüber SixXS). Sollte er Tunnel-Typ <strong>AYIYA</strong> sein, müsst ihr das Tool von SixXS benutzen, da ihr euch hier mit Username …</p><p>Hier eine kleine Hilfe, für alle die Versuchen unter Debian einen IPv6 Tunnel zum laufen zubekommen.</p>
<p>Vorraussetzung ist, dass der Tunnel-Typ <strong>6in4-static</strong> ist (Hier ist eure statische IP die Authentifizierung gegenüber SixXS). Sollte er Tunnel-Typ <strong>AYIYA</strong> sein, müsst ihr das Tool von SixXS benutzen, da ihr euch hier mit Username und Passwort authentifizieren müsst.</p>
<p>Auszug aus der /etc/network/interface:</p>
<div class="highlight"><pre><span></span><code>auto<span class="w"> </span>sixxs
iface<span class="w"> </span>sixxs<span class="w"> </span>inet6<span class="w"> </span>v4tunnel
<span class="w"> </span>address<span class="w"> </span>Local-IPv6-IP
<span class="w"> </span>netmask<span class="w"> </span>Prefix<span class="w"> </span><span class="o">(</span>zB<span class="w"> </span><span class="m">64</span><span class="o">)</span>
<span class="w"> </span>endpoint<span class="w"> </span>POP-IPv4-IP
<span class="w"> </span><span class="nb">local</span><span class="w"> </span>Local-IPv4-IP
<span class="w"> </span>ttl<span class="w"> </span><span class="m">64</span>
<span class="w"> </span>up<span class="w"> </span>ip<span class="w"> </span>link<span class="w"> </span><span class="nb">set</span><span class="w"> </span>mtu<span class="w"> </span><span class="m">1280</span><span class="w"> </span>dev<span class="w"> </span>sixxs
<span class="w"> </span>up<span class="w"> </span>ip<span class="w"> </span>route<span class="w"> </span>add<span class="w"> </span>default<span class="w"> </span>via<span class="w"> </span>POP-IPv6-IP<span class="w"> </span>dev<span class="w"> </span>sixxs
<span class="w"> </span>up<span class="w"> </span>ip<span class="w"> </span>-6<span class="w"> </span>route<span class="w"> </span>flush<span class="w"> </span>dev<span class="w"> </span>eth0
<span class="w"> </span>down<span class="w"> </span>ip<span class="w"> </span>-6<span class="w"> </span>route<span class="w"> </span>flush<span class="w"> </span>dev<span class="w"> </span>sixxs
</code></pre></div>
<p>Der Befehl <code>up ip -6 route flush dev eth0</code> heißt, dass für die Netzwerkschnittstelle eth0 die IPv6-Routen gelöscht werden.</p>
<p>Ich hatte das Problem, dass kein IPv6 Paket sein Ziel erreichte. Erst nachdem ich mir die Ausgabe von <strong>ip -6 route show</strong> anschaute, wurde klar warum. Die Defaultroute für IPv6 war über eth0. Also fix gelöscht und siehe da, alle Pakete erreichen nun auch ihr Ziel.</p>
<p>- IPv6 Ready -</p>Verschlüsselte Partition mit Debian und luks2008-04-10T20:23:00+02:002008-04-10T20:23:00+02:00rmicheltag:blog.devnu11.net,2008-04-10:/2008/04/verschlusselte-partition-mit-debian-und-luks.html<p><strong>Eine verschlüsselte Partition einrichten</strong></p>
<p>Vorraussetzung: Eine leere Partition</p>
<p>Die leere Partition formatieren wird als erstes.</p>
<div class="highlight"><pre><span></span><code>cryptsetup<span class="w"> </span>luksFormat<span class="w"> </span>–y<span class="w"> </span>/dev/hde1
</code></pre></div>
<p>Der Befehl fordert uns auf eine Passphrase einzugeben. Am besten verwenden wir hier nun Zahlen, Sonderzeichen, Klein- und Großbuchstaben und was wir noch so auf der Tastatur finden.</p>
<p>Damit wir …</p><p><strong>Eine verschlüsselte Partition einrichten</strong></p>
<p>Vorraussetzung: Eine leere Partition</p>
<p>Die leere Partition formatieren wird als erstes.</p>
<div class="highlight"><pre><span></span><code>cryptsetup<span class="w"> </span>luksFormat<span class="w"> </span>–y<span class="w"> </span>/dev/hde1
</code></pre></div>
<p>Der Befehl fordert uns auf eine Passphrase einzugeben. Am besten verwenden wir hier nun Zahlen, Sonderzeichen, Klein- und Großbuchstaben und was wir noch so auf der Tastatur finden.</p>
<p>Damit wir nun auch ein Dateisystem erzeugen können, müssen wir das verschlüsselte Device öffnen. Hier wird auch gleich die neue Passphrase verlangt.</p>
<div class="highlight"><pre><span></span><code>cryptsetup<span class="w"> </span>luksOpen<span class="w"> </span>/dev/hde1<span class="w"> </span>hde1_crypt
</code></pre></div>
<p>Ich habe es mit ext3 formatiert.</p>
<div class="highlight"><pre><span></span><code>mkfs.ext3<span class="w"> </span>/dev/mapper/hde1_crypt
</code></pre></div>
<p>Die verschlüsselte Partition soll beim Starten gemountet werden. Wir müssen bedenken, dass die Passphrase beim Starten verlangt wird.</p>
<div class="highlight"><pre><span></span><code><span class="nb">echo</span><span class="w"> </span><span class="s2">"hde1_crypt /dev/hde1 none luks"</span><span class="w"> </span>><span class="w"> </span>/etc/crypttab
</code></pre></div>
<p>Erst jetzt kommen wir an unsere Daten, und können die Partion mounten.</p>
<div class="highlight"><pre><span></span><code><span class="nb">echo</span><span class="w"> </span><span class="s2">"/dev/mapper/hde1_crypt /ein/datei/pfad rw 0 0"</span><span class="w"> </span>>><span class="w"> </span>/etc/fstab
</code></pre></div>
<p>Wenn alles klappt, dann sollte beim nächsten Start nach einer Passphrase gefragt werden.</p>
<!--more-->
<p><strong>Passwort ändern einer verschlüsselten Partition</strong></p>
<p>Das verschlüsselte Device schließen.</p>
<div class="highlight"><pre><span></span><code>cryptsetup<span class="w"> </span>luksClose<span class="w"> </span>/dev/mapper/hde1_crypt
</code></pre></div>
<p>Eine neue Passphrase setzen und zwei mal wiederholen.</p>
<div class="highlight"><pre><span></span><code>cryptsetup<span class="w"> </span>luksAddKey<span class="w"> </span>-y<span class="w"> </span>/dev/hde1
</code></pre></div>
<p>Um den alten Schlüssel, der an der Position 0 steht, zu löschen, fodert uns der unten genannte Befehl auf, die <strong>neue</strong> Passphrase zwei mal einzugeben.</p>
<div class="highlight"><pre><span></span><code>cryptsetup<span class="w"> </span>luksDelKey<span class="w"> </span>/dev/hde1<span class="w"> </span><span class="m">0</span>
</code></pre></div>
<p>Nun das verschlüsselte Device wieder öffnen mit der neuen Passphrase.</p>
<div class="highlight"><pre><span></span><code>cryptsetup<span class="w"> </span>luksOpen<span class="w"> </span>/dev/hde1<span class="w"> </span>hde1_crypt
</code></pre></div>HA mit Debian Lenny & drbd8, ocfs2, heartbeat, pound (http) und mysql2008-04-09T10:22:00+02:002008-04-09T10:22:00+02:00rmicheltag:blog.devnu11.net,2008-04-09:/2008/04/ha-mit-debian-lenny-drbd8-ocfs2-heartbeat-pound-http-und-mysql.html<p><strong>Vorrausetzung</strong></p>
<ul>
<li>2 Server mit einer Lenny Grundinstallation ( Hier als Servernamen cnode1 und cnode2 )</li>
<li>Optional: 2 Netzwerkkarten je Server (für drbd)</li>
<li>eine leere Partion je Server</li>
<li>Vorausgesetzt es ist nicht anderst angegeben, alles auf beiden Nodes ausführen !</li>
</ul>
<h1>Konfiguration von drbd</h1>
<p>Auf beiden Servern als root anmelden</p>
<div class="highlight"><pre><span></span><code>aptitude<span class="w"> </span>install<span class="w"> </span>drbd8-utils<span class="w"> </span>drbd8-modules-2.6 …</code></pre></div><p><strong>Vorrausetzung</strong></p>
<ul>
<li>2 Server mit einer Lenny Grundinstallation ( Hier als Servernamen cnode1 und cnode2 )</li>
<li>Optional: 2 Netzwerkkarten je Server (für drbd)</li>
<li>eine leere Partion je Server</li>
<li>Vorausgesetzt es ist nicht anderst angegeben, alles auf beiden Nodes ausführen !</li>
</ul>
<h1>Konfiguration von drbd</h1>
<p>Auf beiden Servern als root anmelden</p>
<div class="highlight"><pre><span></span><code>aptitude<span class="w"> </span>install<span class="w"> </span>drbd8-utils<span class="w"> </span>drbd8-modules-2.6.24-1-686
<span class="nb">echo</span><span class="w"> </span><span class="s2">"drbd"</span><span class="w"> </span>>><span class="w"> </span>/etc/modules
</code></pre></div>
<p>Nun sichern wir die alte drbd-Konfigurationsdatei</p>
<div class="highlight"><pre><span></span><code>mv<span class="w"> </span>/etc/drbd.conf<span class="w"> </span>/etc/drbd.conf.old
</code></pre></div>
<p>Jetzt erstellen wir eine neue Datei mit <strong>vim /etc/drbd.conf</strong></p>
<div class="highlight"><pre><span></span><code>global<span class="w"> </span><span class="o">{</span><span class="w"> </span>usage-count<span class="w"> </span>yes<span class="p">;</span><span class="w"> </span><span class="o">}</span>
common<span class="w"> </span><span class="o">{</span><span class="w"> </span>syncer<span class="w"> </span><span class="o">{</span><span class="w"> </span>rate<span class="w"> </span>10M<span class="p">;</span><span class="w"> </span><span class="o">}</span><span class="w"> </span><span class="o">}</span>
resource<span class="w"> </span>ha<span class="w"> </span><span class="o">{</span>
protocol<span class="w"> </span>C<span class="p">;</span>
startup<span class="w"> </span><span class="o">{</span><span class="w"> </span>wfc-timeout<span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"> </span>degr-wfc-timeout<span class="w"> </span><span class="m">120</span><span class="p">;</span><span class="w"> </span><span class="o">}</span>
disk<span class="w"> </span><span class="o">{</span><span class="w"> </span>on-io-error<span class="w"> </span>detach<span class="p">;</span><span class="w"> </span><span class="o">}</span>
net<span class="w"> </span><span class="o">{</span>
cram-hmac-alg<span class="w"> </span>sha1<span class="p">;</span>
allow-two-primaries<span class="p">;</span><span class="w"> </span><span class="c1"># Wichtig für Primary/Primary Setup</span>
<span class="o">}</span>
on<span class="w"> </span>cnode1<span class="w"> </span><span class="o">{</span>
device<span class="w"> </span>/dev/drbd0<span class="p">;</span>
disk<span class="w"> </span>/dev/sdb1<span class="p">;</span>
address<span class="w"> </span><span class="m">192</span>.168.1.1:7788<span class="p">;</span>
meta-disk<span class="w"> </span>internal<span class="p">;</span>
<span class="o">}</span>
on<span class="w"> </span>cnode2<span class="w"> </span><span class="o">{</span>
device<span class="w"> </span>/dev/drbd0<span class="p">;</span>
disk<span class="w"> </span>/dev/sdb1<span class="p">;</span>
address<span class="w"> </span><span class="m">192</span>.168.1.2:7788<span class="p">;</span>
meta-disk<span class="w"> </span>internal<span class="p">;</span>
<span class="o">}</span>
<span class="o">}</span>
</code></pre></div>
<p>Speichern mit <strong>:wq</strong></p>
<p>Wenn 2 Netzwerkkarten vorhanden sind, drbd lieber auf eine eigene Karte konfigurieren. Damit drbd mit der Partion etwas anfangen kann, müssen wir diese initialisieren.</p>
<div class="highlight"><pre><span></span><code>drbdadm<span class="w"> </span>create-md<span class="w"> </span>ha
</code></pre></div>
<p>Nun können wir die beiden Partionen synchronisieren. (Den folgenden Befehl nur auf einer Node starten !)</p>
<div class="highlight"><pre><span></span><code>drbdsetup<span class="w"> </span>/edv/drbd0<span class="w"> </span>primary<span class="w"> </span>--overwrite-data-of-peer
</code></pre></div>
<p>Je nach dem wie groß die Partionen sind kann es nun etwas Zeit vergehen. Der Fortschritt kann überprüft werden mit</p>
<div class="highlight"><pre><span></span><code>/etc/init.d/drbd<span class="w"> </span>status
</code></pre></div>
<p>In der Ausgabe sollte sich die unten stehende Zeile finden lassen, wenn beide drbd-Devices synchron sind.</p>
<div class="highlight"><pre><span></span><code><span class="m">0</span>:<span class="w"> </span>cs:Connected<span class="w"> </span>st:Primary/Secondary<span class="w"> </span>ds:UpToDate/UpToDate<span class="w"> </span>C<span class="w"> </span>r---
</code></pre></div>
<p>Nun können wir die zweite Node auch zum ''Primary'' machen</p>
<div class="highlight"><pre><span></span><code>drbdsetup<span class="w"> </span>primary<span class="w"> </span>r0
</code></pre></div>
<h2 id="keks-update">Update (<a href="https://blog.devnu11.net/2008/04/ha-mit-debian-lenny-drbd8-ocfs2-heartbeat-pound-http-und-mysql/#comment-2">Danke keks</a>)</h2>
<p>Da es sehr störend ist, wenn wir die Server neustarten, immer per Hand die 2 Nodes als Primary zu definieren, fügen wir noch zusätzlich in den startup-Block</p>
<div class="highlight"><pre><span></span><code>become-primary-on<span class="w"> </span>both<span class="p">;</span>
</code></pre></div>
<p>ein. Die Zeile sollte dann wie folgt aussehen:</p>
<div class="highlight"><pre><span></span><code>startup<span class="w"> </span><span class="o">{</span><span class="w"> </span>wfc-timeout<span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"> </span>degr-wfc-timeout:<span class="w"> </span><span class="m">120</span><span class="p">;</span><span class="w"> </span>become-primary-on<span class="w"> </span>both<span class="p">;</span><span class="w"> </span><span class="o">}</span>
</code></pre></div>
<p>Das bewirkt, dass beide während des Bootvorgangs als Master definiert werden. Nun die Konfiguration auf beiden Nodes aktualisieren, dann</p>
<div class="highlight"><pre><span></span><code>drbdadm<span class="w"> </span>adjust<span class="w"> </span>ha
</code></pre></div>
<p>und</p>
<div class="highlight"><pre><span></span><code>drbdadm<span class="w"> </span>primary<span class="w"> </span>ha
</code></pre></div>
<p>(Befehle auf beiden Nodes ausführen!)</p>
<p><strong>Wichtig: Um diese Funktion zunutzen, müsst ihr DRBD aus den Quellen bauen, da die Funktion (laut drbd-Homepage) erst ab 8.2.0 implementiert ist.</strong></p>
<h1>Konfiguration von ocfs2</h1>
<p>Jetzt installieren das ocfs2 Filesystem</p>
<div class="highlight"><pre><span></span><code>aptitude<span class="w"> </span>install<span class="w"> </span>ocfs2-tools<span class="w"> </span>ocfs2console
</code></pre></div>
<p>Noch die Konfigurationsdatei erstellen</p>
<div class="highlight"><pre><span></span><code><span class="c1">#/etc/ocfs2/cluster.conf</span>
node:
<span class="nv">ip_port</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">7777</span>
<span class="nv">ip_address</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">192</span>.168.1.1
<span class="nv">number</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span>
<span class="nv">name</span><span class="w"> </span><span class="o">=</span><span class="w"> </span>cnode1
<span class="nv">cluster</span><span class="w"> </span><span class="o">=</span><span class="w"> </span>ocfs2
node:
<span class="nv">ip_port</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">7777</span>
<span class="nv">ip_address</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">192</span>.168.1.2
<span class="nv">number</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">1</span>
<span class="nv">name</span><span class="w"> </span><span class="o">=</span><span class="w"> </span>cnode2
<span class="nv">cluster</span><span class="w"> </span><span class="o">=</span><span class="w"> </span>ocfs2
cluster:
<span class="nv">node_count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">2</span>
<span class="nv">name</span><span class="w"> </span><span class="o">=</span><span class="w"> </span>ocfs2
</code></pre></div>
<p>Nun sind wir fast fertig. Jetzt einmal</p>
<div class="highlight"><pre><span></span><code>/etc/init.d/ocfs2<span class="w"> </span>restart
</code></pre></div>
<p>und dann können wir das Filesystem erstellen mit</p>
<div class="highlight"><pre><span></span><code>mkfs.ocfs2<span class="w"> </span>/dev/drbd0
</code></pre></div>
<p>Damit wir mit dem Filesystem arbeiten können, müssen wir es initialisieren.</p>
<div class="highlight"><pre><span></span><code>/etc/init.d/o2cb<span class="w"> </span>online<span class="w"> </span>ocfs2
</code></pre></div>
<p>bewirkt das der Cluster mit dem Namen <strong>ocfs2</strong> geladen wird.</p>
<div class="highlight"><pre><span></span><code>/etc/init.d/o2cd<span class="w"> </span>load
/etc/init.d/o2cd<span class="w"> </span>online<span class="w"> </span>ocfs2
</code></pre></div>
<p>Jetzt können wir es mit</p>
<div class="highlight"><pre><span></span><code>mount<span class="w"> </span>/dev/drbd0<span class="w"> </span>/srv
</code></pre></div>
<p>nutzen</p>
<h1>Konfiguration vom HTTP Loadbalancer - pound</h1>
<p><a href="https://blog.devnu11.net/2008/06/pound-einrichten/">Hier :)</a></p>
<h1>Konfiguration von heartbeat</h1>
<p>Folgt !</p>Serielle Konsole für Server (Grub)2008-04-08T21:30:00+02:002008-04-08T21:30:00+02:00rmicheltag:blog.devnu11.net,2008-04-08:/2008/04/serielle-konsole-fur-server-grub.html<p><strong>Einführung</strong></p>
<p>Wenn wir zwei Server irgendwo (z.B. Rechenzentrum) stehen haben und es die Möglichkeit besteht, dass man beide via Nullmodem-Kabel verbinden, kann man sie auch ohne SSH-Zugang warten (z.B. nach einem fehlgeschlagenen Kernelupdate). Leider nur immer in eine Richtung. Für beide Richtungen bräuchte man 2 Nullmodem-Kabel.</p>
<p><strong>Konfiguration</strong></p>
<p>Damit …</p><p><strong>Einführung</strong></p>
<p>Wenn wir zwei Server irgendwo (z.B. Rechenzentrum) stehen haben und es die Möglichkeit besteht, dass man beide via Nullmodem-Kabel verbinden, kann man sie auch ohne SSH-Zugang warten (z.B. nach einem fehlgeschlagenen Kernelupdate). Leider nur immer in eine Richtung. Für beide Richtungen bräuchte man 2 Nullmodem-Kabel.</p>
<p><strong>Konfiguration</strong></p>
<p>Damit wir die Möglichkeit haben den Kernel auszuwählen, sollten wir Grub sagen, dass es seine Ausgabe an den seriellen Port weiterleitet.</p>
<p>Dazu fügen wir folgende Zeien in die <strong>/boot/grub/menu.lst</strong> hinzu.</p>
<div class="highlight"><pre><span></span><code>serial<span class="w"> </span>--unit<span class="o">=</span><span class="m">0</span><span class="w"> </span>--speed<span class="o">=</span><span class="m">57600</span>
terminal<span class="w"> </span>--timeout<span class="o">=</span><span class="m">2</span><span class="w"> </span>serial<span class="w"> </span>console
</code></pre></div>
<p><strong>Erklärung:</strong></p>
<div class="highlight"><pre><span></span><code>--unit<span class="o">=</span><span class="m">0</span>
</code></pre></div>
<p>heißt einfach das der Com1 bzw. ttyS0 genutzt wird. Der Parameter</p>
<div class="highlight"><pre><span></span><code>--speed<span class="o">=</span><span class="m">57600</span>
</code></pre></div>
<p>steht für die Übertragungsgeschwindingkeit. Standard ist 9600.</p>
<div class="highlight"><pre><span></span><code>--timeout<span class="o">=</span><span class="m">2</span><span class="w"> </span>serial<span class="w"> </span>console
</code></pre></div>
<p>bedeutet das man 2 Sekunden Zeit hat und das die primäre Ausgabe auf dem seriellen Port und die sekundäre auf der Console ist.</p>
<p>Jetzt wird die Ausgabe vom Grub an den seriellen Port umgeleitet. Damit wir aber auch einen Login an der seriellen Konsole bekommen, müssen wir die <strong>/etc/inittab</strong> noch bearbeiten.</p>
<p>Wir suchen diesen Teil</p>
<div class="highlight"><pre><span></span><code><span class="c1"># Example how to put a getty on a serial line (for a terminal)</span>
<span class="c1">#</span>
<span class="c1">#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100</span>
<span class="c1">#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100</span>
</code></pre></div>
<p>und entfernen das # vor der Zeile mit T0 und ändern die Zahl 9600 wieder auf 57600.</p>
<p>Die Zeile</p>
<div class="highlight"><pre><span></span><code>T0:23:respawn:/sbin/getty<span class="w"> </span>-L<span class="w"> </span>ttyS0<span class="w"> </span><span class="m">57600</span><span class="w"> </span>vt100
</code></pre></div>
<p>heißt dann nichts anderes als das nach dem Starten ein Login auf ttyS0 in/mit der Geschwindigkeit von 57600 Kbit/s auf uns wartet.</p>
<p>Damit der Kernel seine Meldungen auf der seriellen Konsole aus gibt, geben wir dem Kernel noch zwei Parameter mit:</p>
<div class="highlight"><pre><span></span><code><span class="nv">console</span><span class="o">=</span>tty0<span class="w"> </span><span class="nv">console</span><span class="o">=</span>ttyS0,57600n8
</code></pre></div>
<p>Das sollte dann so in etwa aussehen:</p>
<div class="highlight"><pre><span></span><code>title<span class="w"> </span>Debian<span class="w"> </span>GNU/Linux,<span class="w"> </span>kernel<span class="w"> </span><span class="m">2</span>.6.18-6-686<span class="w"> </span><span class="o">(</span>single-user<span class="w"> </span>mode<span class="o">)</span>
root<span class="w"> </span><span class="o">(</span>hd0,0<span class="o">)</span>
kernel<span class="w"> </span>/boot/vmlinuz-2.6.18-6-686<span class="w"> </span><span class="nv">root</span><span class="o">=</span>/dev/hda1<span class="w"> </span>ro<span class="w"> </span><span class="nv">vga</span><span class="o">=</span><span class="m">791</span><span class="w"> </span><span class="nv">console</span><span class="o">=</span>tty0<span class="w"> </span><span class="nv">console</span><span class="o">=</span>ttyS0,57600n8
initrd<span class="w"> </span>/boot/initrd.img-2.6.18-6-686
savedefault
</code></pre></div>
<p>Das heißt, dass die Kernelmeldung auf der console <strong>und</strong> der seriellen Konsole ausgegeben werden. Wenn alles fertig ist, neustarten. Mann kann jetzt zB via minicom auf dem anderen Server die Ausgabe von dem gerade eingerichteten Server sehen.</p>