<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:atom="http://www.w3.org/2005/Atom"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
>
    <channel>
        <title>Silas Sewell - November 2008</title>
        <atom:link href="http://www.silassewell.com/blog/2008/11/rss2.xml" rel="self" type="application/rss+xml" />
        <link>http://www.silassewell.com/blog/2008/11</link>
        <description>Infrastructure Development</description>
        <lastBuildDate>Sat, 08 Jan 2011 00:00:00 GMT</lastBuildDate>
        <generator>http://www.silassewell.com/</generator>
        <language>en</language>
        <sy:updatePeriod>hourly</sy:updatePeriod>
        <sy:updateFrequency>1</sy:updateFrequency>

        <item>
            <title>Adobe Flash 10 64-bit SPEC File for Fedora 9</title>
            <link>http://www.silassewell.com/blog/2008/11/18/adobe-flash-10-64-bit-spec-file-for-fedora-9/</link>
            <pubDate>Tue, 18 Nov 2008 00:00:00 GMT</pubDate>
            <dc:creator>silas</dc:creator>
            <category><![CDATA[Adobe Flash]]></category><category><![CDATA[Fedora]]></category><category><![CDATA[RPM]]></category><category><![CDATA[Systems Administration]]></category>
            <guid isPermaLink="true">http://www.silassewell.com/blog/2008/11/18/adobe-flash-10-64-bit-spec-file-for-fedora-9/</guid>
            <description><![CDATA[<p>I hacked up a quick SPEC file for the alpha release of
<a href="http://labs.adobe.com/technologies/flashplayer10/releasenotes_64bit.html">Adobe Flash 10 64-bit</a> for Linux.</p>

<pre><code class="prettyprint">Name:           adobe-flash
Version:        10.0.d20.7
Release:        1%{?dist}
Summary:        Adobe Flash player.

Group:          Application/Internet
License:        Proprietary
URL:            http://labs.adobe.com/technologies/flashplayer10/
Source0:        http://download.macromedia.com/pub/labs/flashplayer10/libflashplayer-10.0.d20.7.linux-x86_64.so.tar.gz
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

BuildArch:      x86_64
Requires:       firefox &gt;= 3
Requires:       mozilla-filesystem

%description
The Adobe Flash player.

%prep
%setup -T -c -a 0

%install
install -D -m 644 libflashplayer.so $RPM_BUILD_ROOT%{_usr}/lib64/mozilla/plugins/libflashplayer.so

%clean
rm -rf $RPM_BUILD_ROOT

%files
%defattr(-,root,root,-)
%{_usr}/lib64/mozilla/plugins/libflashplayer.so

%changelog
* Tue Nov 18 2008 Silas Sewell &lt;silas@sewell.ch&gt; - 10.0.d20.7
- Created package.
</code></pre>]]></description>
        </item>

        <item>
            <title>Push: Func Module to Run Arbitrary Python Code</title>
            <link>http://www.silassewell.com/blog/2008/11/18/push-func-module-to-run-arbitrary-python-code/</link>
            <pubDate>Tue, 18 Nov 2008 00:00:00 GMT</pubDate>
            <dc:creator>silas</dc:creator>
            <category><![CDATA[Func]]></category><category><![CDATA[Programming]]></category><category><![CDATA[Python]]></category><category><![CDATA[Systems Administration]]></category>
            <guid isPermaLink="true">http://www.silassewell.com/blog/2008/11/18/push-func-module-to-run-arbitrary-python-code/</guid>
            <description><![CDATA[<p><a href="https://fedorahosted.org/func/" title="Func">Func</a> is a nifty, although not yet polished, Python-based service for
running tasks on many hosts at once. It lets you do things like restart
<a href="https://fedorahosted.org/func/wiki/ServiceModule" title="Service Module">Apache instances</a>, <a href="https://fedorahosted.org/func/wiki/YumModule" title="Yum Module">run yum updates</a> or
<a href="https://fedorahosted.org/func/wiki/VirtModule" title="Virt Module">provision virtual machines</a>.</p>

<p>You can accomplish theses tasks via the command line interface</p>

<pre><code class="prettyprint">func web-*.example.net call service restart httpd
</code></pre>

<p>or through the Python API</p>

<pre><code class="prettyprint">import func.overlord.client as fc

client = fc.Client('web-*.example.net')

print client.service.restart('httpd')
</code></pre>

<p>One of the annoying issues I'm dealing with right now is the distribution of
Func modules, which for various reasons isn't as simple as packaging the
modules and pushing them to all the hosts (it is, just not in my network).</p>

<p>My solution is <a href="http://www.silassewell.com/blog/2008/11/18/push-func-module-to-run-arbitrary-python-code/push.py">Push</a>, a Func module which lets you instantly run Python
code on any or all hosts in your network.</p>

<p>Example usage:</p>

<pre><code class="prettyprint">import func.overlord.client as fc

client = fc.Client('web-*.example.net')

source = """
def main():
    return 'Hello World'
"""

print client.push.code(source)
</code></pre>

<p>I realize this isn't the most elegant solution, but its very useful and
extremely simple.</p>

<p>I also realize that I could use the copyfile module to push modules via Func,
but I haven't found a way to restart funcd via Func (required to initialize
modules), so until that happens I need a solution which doesn't require
restarting Func.</p>

<p><a href="http://www.silassewell.com/blog/2008/11/18/push-func-module-to-run-arbitrary-python-code/push.py">Get Push Module</a></p>]]></description>
        </item>

    </channel>
</rss>
