Поиск по этому блогу

понедельник, 7 ноября 2011 г.

Второй способ поднять puppetmaster и puppet Debian/Ubuntu

И так при первом описании поднятия puppetmaster и puppet клиента возникла ошибка с невозможностью вытянуть конфиг с сервера клиентом. Второй способ рассматривает в качестве сервера Ubuntu 10.10 и клиента Debian 6 squeeze
И так приступим
+SERVER+
#sudo apt-get install puppetmaster
#nano /etc/puppet/manifests/site.pp
file { "/etc/passwd":
 owner => "root",
 group => "bin",
 mode => 644,
}
Но для для теста я создал фаил (на клиентской машине) /home/debian1/test и впихнул его в манифест на сервер
#nano /etc/puppet/manifests/site.pp
file { "/home/nosensus/test:
 owner => "root",
}
Далее в /etc/hosts пропишем клиента
#nano /etc/hosts
192.168.5.75    nosensus.nosensus       nosensus
192.168.5.175  debian1
+CLIENT+
#apt-get install puppet
Допишем в конфиг папета в самый конец следующую строку
#nano /etc/puppet/puppet.conf
[agent]
server=ubuntu
Далее пропишем в /etc/hosts сервер
#nano /etc/hosts
192.168.5.175    debian1
192.168.5.75  nosensus.nosensus
теперь отправим запрос на сервер о получении сертификата
#puppetca -vt
Должно выйти, что то типо такого
info: Creating a new SSL key for debian1
warning: peer certificate won't be verified in this SSL session
info: Caching certificate for ca
warning: peer certificate won't be verified in this SSL session
warning: peer certificate won't be verified in this SSL session
info: Creating a new SSL certificate request for debian1
info: Certificate Request fingerprint (md5): 72:31:C1:CC:0B:33:AC:28:11:AE:FF:13:4B:A5:BF:6B
warning: peer certificate won't be verified in this SSL session
warning: peer certificate won't be verified in this SSL session
warning: peer certificate won't be verified in this SSL session
Exiting; no certificate found and waitforcert is disabled
Но если выйдет ошибка
-bash: puppetca: command not found
то вам необходимо будет запросить авторизацию так
#root@debian1:~# puppetd --server nosensus.nosensus --waitforcert 60


+SERVER+
На сервере подпишем, но сначала посмотрим список запрашиваемых, если есть знак + значит узел подписан
#root@nosensus:~# puppetca -la
debian1 (72:31:C1:CC:0B:33:AC:28:11:AE:FF:13:4B:A5:BF:6B)
+ nosensus.nosensus (35:A1:64:03:65:91:58:6C:32:FD:D5:C2:F1:B4:C5:E0)
Видим что debian1 не подпиан, подписываем
#puppetca --sign (ну и указываем узел)
root@nosensus:~# puppetca --sign debian1
notice: Signed certificate request for debian1
notice: Removing file Puppet::SSL::CertificateRequest debian1 at '/var/lib/puppet/ssl/ca/requests/debian1.pem'
+CLENT+
Теперь тянем с сервера конфиг, в данном случае у меня фаил test обретет рутовские привиллегии.
#puppetd -vt
#root@debian1:/etc# puppetd -vt
warning: peer certificate won't be verified in this SSL session
info: Caching certificate for nosensus.nosensus
info: Caching certificate_revocation_list for ca
info: Caching catalog for nosensus.nosensus
info: Applying configuration version '1320653819'
notice: /Stage[main]//File[/home/debian1/test]/owner: owner changed 'nosensus' to 'root'
info: Creating state file /var/lib/puppet/state/state.yaml
notice: Finished catalog run in 0.02 seconds




Если у вас выйдет ошибка
root@debian1:/home/debian1# puppetd -vt
err: Could not retrieve catalog from remote server: hostname was not match with the server certificate
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run

В данном случае у вас проблема с хостами, а точнее зайдите /etc/hosts и пропишите правильно хосты, как на клиенте так и на сервере именно с этой ошибкой я очень долго маялся.

Домашняя радиостанция на Linux Ubuntu 10.04

Существует множество разных программ, с помощью которых можно было реализовать идею домашней радиостанции. 

Я перепробовал много разных вариантов и схем прежде чем наткнулся на самый простой способ.


Если Вы не хотите утруждать себя настройкой консольных приложений, то эта статья для Вас :)


Все что нам нужно это установить сервер вещания IceCast2 и пакетик под названием idjc (internet dj console).
К счастью эти приложения имелись в отечественном репозитории, поэтому с установкой проблем не возникло:
sudo apt-get install idjc icecast2
Конфиг сервера находится по адресу /etc/icecast2/icecast.xml и выглядит так
По умолчанию сервер Icecast2 отключен, чтобы запустить его выполним следующее:
sudo nano /etc/default/icecast2
Находим нужную строчку и меняем false на true:
# Change this to true when done to enable the init.d script
ENABLE=true
Запускаем сервер
sudo /etc/init.d/icecast2 start
Теперь когда сервер готов к вещанию нам остается только запустить internet dj console
и добавить музыку в плэйлист.

Чтобы настроить вещание через сервер IceCast2 нажмите на кнопку Server
в нижнем левом углу окна.

Заполните поля примерно так как показано на скрине.
Только не забудьте поменять название точки монтирования (вместо rock.mp3 можно написать что-то свое) и ip адрес сервера,
а также вписать пароль источника такой же как в конфиге icecast.
После того как поля будут заполнены, нажмите кнопку Add
и на кнопку Server Connect для подключение к серверу.
Теперь можете скинуть ссылку на плэйлист (http://ваш_ip:8000/rock.mp3.m3u) друзьям и вещать в свое удовольствие .)


Автор статьи Игорь Шакиров

пятница, 4 ноября 2011 г.

Две LAN/сетевые карты на Debian

       И так если у вас установленны две сетевые карты на сервере и необходимо задействовать их между собой то
путь
#cd proc/sys/net/ipv4
#nano ip_forward
по умолчанию там стоит цифра 0 измените ее на 1 и все
Далее задаем комманду в коносоле
#ifconfig

eth0      Link encap:Ethernet  HWaddr 00:e0:ec:ba:ad:88  
          inet addr:192.168.5.175  Bcast:192.168.5.255  Mask:255.255.255.0
          inet6 addr: fe80::2e0:ecff:feba:ad88/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2148 errors:0 dropped:0 overruns:0 frame:0
          TX packets:344 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:219742 (214.5 KiB)  TX bytes:43341 (42.3 KiB)
          Interrupt:11 Base address:0xec00 


lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:560 (560.0 B)  TX bytes:560 (560.0 B)

Но как видете вторая сетевая карта не определена изменил кое, что кое где, а именно
#nano /etc/network/interfaces

# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
#allow-hotplug eth0
auto eth0
iface eth0 inet static
        address 192.168.5.175
        netmask 255.255.255.0
        network 192.168.5.0
        broadcast 192.168.5.255
        gateway 192.168.5.1
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 81.95.224.146 81.95.224.65
        dns-search hserver
auto eth1
iface eth1 inet static
        address 192.168.1.175
        netmask 255.255.255.0
Далее проверим присвоился ли ипе двум сетевым интерфесам.
#ifconfig

eth0      Link encap:Ethernet  HWaddr 00:e0:ec:ba:ad:88  
          inet addr:192.168.5.175  Bcast:192.168.5.255  Mask:255.255.255.0
          inet6 addr: fe80::2e0:ecff:feba:ad88/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:471 errors:0 dropped:0 overruns:0 frame:0
          TX packets:87 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:44350 (43.3 KiB)  TX bytes:12822 (12.5 KiB)
          Interrupt:11 Base address:0xec00 


eth1      Link encap:Ethernet  HWaddr 00:0a:e6:30:6c:b2  
          inet addr:192.168.1.175  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20a:e6ff:fe30:6cb2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:22 errors:0 dropped:0 overruns:0 frame:0
          TX packets:49 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1834 (1.7 KiB)  TX bytes:7329 (7.1 KiB)
          Interrupt:5 Base address:0xd800 


lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:560 (560.0 B)  TX bytes:560 (560.0 B)
То что нам было нужно.

Далее создадим файл тут
#cd /etc/init.d
Создадим файл где будет прописано правило натинга
#touch nating
Делаем его исполняемым
#chmod +x nating
Запихнем правило натинга
#nano nating

iptables -A POSTROUTING -t nat -s 192.168.5.175 -j SNAT --to 192.168.1.1
iptables -A PREROUTING -t nat -d 192.168.1.1 -j DNAT --to 192.168.5.175
И после дабавим в автозагрузку
#update-rc.d defaults nating


Примечание
iptables -A POSTROUTING -t nat -s 192.168.5.175 -j SNAT --to 192.168.1.1
в данном случае все соединения 192.168.5.175 будут перенаправлены на 192.168.1.1
iptables -A PREROUTING -t nat -d 192.168.1.1 -j DNAT --to 192.168.5.175
Теперь любое соединение на адрес 192.168.1.1 будет непосредственно транслироваться в 192.168.5.175
Заключение
В заключении отмечу несколько дополнительных параметров iptables, которые я использовал при составлении статьи.
Перенаправление одного порта (192.168.1.1:10022 → 192.168.5.175:22):
# iptables -A PREROUTING -t nat -d 192.168.1.1 -p tcp --dport 10022 -j DNAT --to 192.168.5.175:22
# iptables -A POSTROUTING -t nat -s 192.168.5.175 -p tcp --dport 22 -j SNAT --to 192.168.1.1:10022

пятница, 28 октября 2011 г.

Puppet и Puppetmaster на Debian-Ubuntu

И так после недельного битья головой о гранит науки дало свои результаты:
Начнем все по шагово...
====SERVER=====
Установим сервер кукловода
#apt-get install puppetmaster
далее правим конфиг, т.е разрешим нашей подсети функционировать на все катушку
#nano /etc/puppet/fileserver.conf
разкомментил нужную нам подсеть:
[files]
path /etc/puppet/files
# allow *.example.com
# deny *.evil.example.com
allow 192.168.5.0/24
[plugins]
# allow *.example.com
# deny *.evil.example.com
allow 192.168.5.0/24

далее пропишем клиентов и сам сервер в хост, чтобы он понимал о чем идет речь.
#nano /etc/hosts
127.0.0.1 localhost
192.168.5.174 debian1.debian1 debian1
добавим это:
192.168.5.174 puppetmaster.debian1.debian1 puppetmaster
192.168.5.175 puppet1.debian3.debian3 puppet1
(здесь добавляются все клиенты puppet)

Конфигурационные файлы клиента и сервера хранятся в каталоге /etc/puppet. Наиболее важный из них — файл /etc/puppet/manifests/site.pp, содержащий манифест.
Он хранит описание состояний и должен существовать только на сервере. Для удобства отладки добавим в него простейшую конфигурацию:

# nano /etc/puppet/manifests/site.pp
class passwd {
file { "/etc/passwd":
owner => root,
group => root,
mode => 644,
}
}
node default {
include passwd
}
Также в конфиг puppet'a внесем следующий конфиг
#nano /etc/puppet/puppet.conf
вклинем это
[main]
# Стандартные пути к каталогам
logdir=/var/log/puppet
vardir=/var/lib/puppet
ssldir=/var/lib/puppet/ssl
rundir=/var/run/puppet
# Расположение инструмента Facter,
# используемого для получения информации об ОС
factpath=$vardir/lib/facter
# Синхронизировать плагины
# (установил плагины на сервер — они копируются на клиентов если их нет то выставите false)
pluginsync=true
<!--Если плагинов нет то ставьте данный пункт false-->
# Каталог с шаблонами (о них читай ниже)
templatedir=$confdir/templates

====CLIENT====
Теперь на клиентской машине установим сам puppet
#apt-get install puppet
#nano /etc/puppet/puppet.conf
вклинем это
[main]
# Стандартные пути к каталогам
logdir=/var/log/puppet
vardir=/var/lib/puppet
ssldir=/var/lib/puppet/ssl
rundir=/var/run/puppet
# Расположение инструмента Facter,
# используемого для получения информации об ОС
factpath=$vardir/lib/facter
# Синхронизировать плагины
# (установил плагины на сервер — они копируются на клиентов если нет плагинов тогда false)
pluginsync=true
<!--Если плагинов нет то ставьте данный пункт false-->
# Каталог с шаблонами (о них читай ниже)
templatedir=$confdir/templates

Далее необходимо перевести режим запуска puppet в yes
#nano /etc/default/puppet
# Defaults for puppet - sourced by /etc/init.d/puppet
# Start puppet on boot?
START=yes
# Startup options
DAEMON_OPTS=""

Далее прописать в /etc/hosts пути
#nano /etc/hosts
было так
127.0.0.1 localhost
192.168.5.175 debian3.debian3 debian3
добавили это
192.168.5.174 puppetmaster.debian1.debian1 puppetmaster
192.168.5.175 puppet1.debian3.debian3 puppet1

сформируем ключ
#puppetd --server puppetmaster.debian1.debian1 --waitforcert 60
если у вас вышла ошибка после запуска

root@debian3:~# puppetd --server puppetmaster.debian1.debian1 --waitforcert 60
Could not prepare for execution: Could not create PID file: /var/run/puppet/agent.pid
То вам надо остановить puppet клиент

root@debian3:~# /etc/init.d/puppet stop
Stopping puppet agent.
и можно повторно запустить преобразование сертификата.
#puppetd --server puppetmaster.debian1.debian1 --waitforcert 60
здесь debian1.debian1 сервер

====SERVER=====
посмотрим определил ли сервер клиента
#puppetca -la
root@debian1:~# puppetca -la
+ debian1.debian1 (48:B4:ED:39:51:D7:C4:8A:4E:44:DE:93:7F:39:26:61)
debian3.debian3 (6C:4C:10:07:5E:D0:EB:2B:49:CC:F8:FA:9A:1E:FB:9B)

Теперь подпишем третью машину на сертификат
#puppetca --sign {имя клиента}
root@debian1:~# puppetca --sign debian3.debian3
notice: Signed certificate request for debian3.debian3
notice: Removing file Puppet::SSL::CertificateRequest debian3.debian3 at '/var/lib/puppet/ssl/ca/requests/debian3.debian3.pem'
Или же подписываем сразу все:
#puppetca --sign --all

Далее это....
#nano /etc/puppet/manifests/site.pp
впишем
import "modules"
import "nodes"

Далее пропишем клиента на сервере
#nano /etc/puppet/manifests/nodes.pp
node basenode {
include hosts
}
node 'puppet1.debian3.debian3' inherits basenode {
}

далее создадим каталоги и файлы
mkdir -p /etc/puppet/modules/hosts/files
mkdir /etc/puppet/modules/hosts/manifests
touch /etc/puppet/modules/hosts/files/hosts
touch /etc/puppet/modules/hosts/manifests/init.pp

Далее вклинем то что у нас в /etc/hosts
#nano /etc/puppet/modules/hosts/files/hosts
192.168.5.175 puppetmaster.debian1.debian1 puppetmaster
192.168.5.174 puppet1.debian2.debian2 puppet1
192.168.5.178 puppet2.debian3.debian3 puppet2

#nano /etc/puppet/modules/hosts/manifests/init.pp
class hosts {
file { "/etc/hosts":
owner => root,
group => root,
mode => 775,
source => "puppet:///hosts/hosts"
}
}
====CLIENT====
Далее введем команду чтобы проверить наш клиент

#puppetd -vt
root@debian3:~# puppetd -vt
info: Retrieving plugin
info: Caching catalog for debian3.debian3
info: Applying configuration version '1319272945'
notice: Finished catalog run in 0.04 seconds

====SERVER====P.S.
Послушать порт
#netstat -an|grep LISTEN|grep 8140
tcp 0 0 0.0.0.0:8140 0.0.0.0:* LISTEN

Либо так
#lsof -i :8140
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
puppet 23586 puppet 7u IPv4 771014 0t0 TCP *:8140 (LISTEN)
значит все окай!

Сервер работает на порту 8140, так что в случае проблем, проверьте настройки сети, клиентские машины должны иметь доступ к порту 8140 на управляющем сервере.
Проверим в браузере
https://192.168.5.75:8140
должно выйти это
The indirection name must be purely alphanumeric, not ''
Проверить запущен ли сервер или клиент можно так
#service puppetmaster status
master is running.

#service puppet status
agent is running.


P.S. и так при первой попытке у меня все заработало нормально единственной проблемой была та, что клиент не тянул конфиг с сервера. После переустановки возникла другая проблема, а именно:

err: Could not retrieve catalog from remote server: getaddrinfo: Name or service not known
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run

среда, 12 октября 2011 г.

Радио/видео вещание по Lan IceCast на Debian squeeze

          И так в данном посте будет описание и метод поднятия сервера онлайн вещания mp3 музыки. приступим....
Установим необходимые пакеты тажке у вас должен быть установлен апач, но я сразу поднимал LAMP сервер
#apt-get install libshout-dev
#apt-get install libmp3lame-dev (данный пакет почему то не установился на другой тачке)
#apt-get install libxml2-dev
#aptitude install javacc libjavacc-maven-plugin-java jtb javacc-doc g++ gpp partimage-doc vacation clisp clisp-dev clisp-doc partimage fldiff gawk perl python-cxx python-cxx-dev
Далее закачаем сам проигрыватель
#wget http://downloads.us.xiph.org/releases/ices/ices-0.4.tar.gz
распакуем
#tar -zxvf ices-0.4.tar.gz
зайдем в распакованный архив
#cd ices-0.4
ну и установим его
#./configure
#make
#make install
#apt-get install icecast2
отредактируем сам конфиг, в нем я ничего не трогал кроме пароля админа(я выделил жирным шрифтом)
#nano /etc/icecast2/icecast.xml

    <authentication>
        <!-- Sources log in with username 'source' -->
        <source-password>123</source-password>
        <!-- Relays log in username 'relay' -->
        <relay-password>123</relay-password>
        <!-- Admin logs in with the username given below -->
        <admin-user>admin</admin-user>
        <admin-password>123</admin-password>
    </authentication>
Далее необходимо включить демон меняем false на true
#nano /etc/default/icecast2

# Edit /etc/icecast2/icecast.xml and change at least the passwords.
# Change this to true when done to enable the init.d script
ENABLE=true
теперь можно запустить его коммандой
#/etc/init.d/icecast2 start
Теперь перейдет к настройке Icec 0.4
Сделаем конфиг IceCast(по идеи шаблон конфига должен быть в /usr/local/etc/ices.conf.dist и его можно скопировать в /usr/local/etc/ices.conf)
#nano /usr/local/etc/ices.conf

<?xml version="1.0"?>
<ices:Configuration xmlns:ices="http://www.icecast.org/projects/ices">
<!-- Путь до плей листа(текстовый документ)-->
<Playlist>
<!-- This is the filename used as a playlist when using the builtin playlist handler. -->
<File>/home/radio/playlist.txt</File>
<!-- Set this to 0 if you don’t want to randomize your playlist, and to 1 if you do. -->
<!-- Настройка перемешивания треков, 1 – перемешивать 0 – играть по порядку -->
<Randomize>1</Randomize>
<!--One of builtin, perl, or python. -->
<Type>builtin</Type>
<!-- Module name to pass to the playlist handler if using  perl or python.
If you use the builtin playlist handler then this is ignored -->
<Module>ices</Module>
<!-- Set this to the number of seconds to crossfade between tracks.
Leave out or set to zero to disable crossfading (the default).
<Crossfade>5</Crossfade> -->
</Playlist>
<Execution>
<!-- Set this to 1 if you want ices to launch in the background as a daemon -->
<Background>0</Background>
<!-- Set this to 1 if you want to see more verbose output from ices -->
<Verbose>0</Verbose>
<!-- This directory specifies where ices should put the logfile, cue file
and pid file (if daemonizing). Don’t use /tmp if you have l33t h4x0rz
on your server. -->
<BaseDirectory>/tmp</BaseDirectory>
</Execution>
<!--Настройка подключения в серверу-->
<Stream>
<Server>
<!-- Hostname or ip of the icecast server you want to connect to -->
<Hostname>192.168.5.75</Hostname>
<!-- Port of the same -->
<Port>8000</Port>
<!-- Encoder password on the icecast server -->
<Password>123</Password>
<!-- Header protocol to use when communicating with the server.
Shoutcast servers need «icy», icecast 1.x needs «xaudiocast», and 
icecast 2.x needs «http». -->
<Protocol>http</Protocol>
</Server>
<!-- Настройки точки монтирования(канала)-->
<!-- The name of the mountpoint on the icecast server -->
<Mountpoint>/radio</Mountpoint>
<!-- The name of the dumpfile on the server for your stream. DO NOT set
this unless you know what you’re doing.
<Dumpfile>ices.dump</Dumpfile> -->
<!-- The name of you stream, not the name of the song! -->
<Name>localhost</Name>
<!-- Genre of your stream, be it rock or pop or whatever -->
<Genre>Default genre</Genre>
<!-- Longer description of your stream -->
<Description>Default description</Description>
<!-- URL to a page describing your stream -->
<URL>http://192.168.5.75</URL>
<!-- 0 if you don’t want the icecast server to publish your stream on the yp server, 1 if you do -->
<Public>1</Public>
<!-- Настройка битрейта потока -->
<!-- Stream bitrate, used to specify bitrate if reencoding, otherwise
just used for display on YP and on the server. Try to keep it accurate -->
<Bitrate>128</Bitrate>
<!-- If this is set to 1, and ices is compiled with liblame support,
ices will reencode the stream on the fly to the stream bitrate. -->
<Reencode>0</Reencode>
<!-- Number of channels to reencode to, 1 for mono or 2 for stereo -->
<!-- Sampe rate to reencode to in Hz. Leave out for LAME’s best choice
<Samplerate>44100</Samplerate> -->
<Channels>2</Channels>
</Stream>
</ices:Configuration>
Далее создадим каталог куда будет складываться вся музыка
#mkdir /home/radio
#cd /home/radio/
далее зальем сначала музыку в созданную папку, а после вводим комманду для создания плей листа
#ls > playlist.txt
Теперь запустим 
#ices -c /usr/local/etc/ices.conf
Если не запускается командой выше, или запускается и начинает использовать стандартный конфиг, то запустите Ices командой:
#ices
ну и в браузере проверим должно все работать.
http://localhost:8000/radio
Также чтобы прослушать созданное радио на удаленном узле откройте проигрываетель и пропишите выше указанную ссылку.
Теперь поднимем сервер видео транляции
И так статью слепил с двух ссылок 1 и 2
Создадим файл /etc/ezstream.xml и добавим в него следующее:

<ezstream>
    <url>http://192.168.5.75:8000/video</url>
    <sourcepassword>123</sourcepassword>
    <format>THEORA</format>
    <filename>/etc/ezstream.m3u</filename>
    <shuffle>1</shuffle>
    <svrinfoname>Test TV</svrinfoname>
    <svrinfourl>http://ylsoftware.com либо ваш IP</svrinfourl>
    <svrinfogenre></svrinfogenre>
    <svrinfodescription>Test TV-Chanel</svrinfodescription>
    <svrinfobitrate>200</svrinfobitrate>
    <svrinfochannels>2</svrinfochannels>
    <svrinfosamplerate>44100</svrinfosamplerate>
    <reencode>
        <enable>1</enable>
        <encdec>
            <format>THEORA</format>
            <match>.avi</match>
            <decode>ffmpeg2theora -x 720 -y 400 -a 0 -v 4 --title "@M@" -o - "@T@"</decode>
        </encdec>
        <encdec>
            <format>THEORA</format>
            <match>.mpg</match>
            <decode>ffmpeg2theora -x 720 -y 400 -a 0 -v 4 --title "@M@" -o - "@T@"</decode>
        </encdec>
    </reencode>
</ezstream>
И сделаем его испольняемым 
#chmod +x  /etc/ezstream.xml 

Для запуска ezstream в качестве демона создайте скрипт следующего содеражния:(но я его не добавлял запускаю в ручную)
#!/bin/sh
ezstream -c /etc/ezstream.xml >/dev/null 2>/dev/null &
И добавьте его в автозапуск. Для этого нужно дописать стрчку вызова скрипта в /etc/init.d/rc.local
Далее
Создадим в данном пути фаил для плей листа, куда внесем путь к нашему фильму
#nano /etc/ezstream.m3u
/home/nosensus/video/house_md_s08e01_rus_eng.avi
Сделаем данный фаил исполняемым
#chmod +x /etc/ezstream.m3u
Далее установим проигрыватель
#apt-get install ffmpeg2theora
#apt-get install ezstream
Запустим наш сервер
#ezstream -c /etc/ezstream.xml
Ну и теперь пройдем по ссылке http://127.0.0.1:8000/video.ogg