LINUX.ORG.RU

Сообщения ipeacocks

 

OpenVPN. Соединение двух сетей

Форум — Admin

В целях самообразование играюсь с OpenVPN и в данном случае хочу попробовать соединить две локальные сети, т.е. чтобы каждый из хостов одной сети видел (мог пинговать) все остальные хосты.

Ситуация следующая. Есть две локальные сети 10.129.0.0/16 (состоит из двух хостов 10.129.20.80 и 10.129.18.182) и 10.135.0.0/16 (тоже состоит из двух хостов 10.135.28.233 и 10.135.32.170).

Хост 10.129.18.182 имеет постоянный внешний IP 37.139.10.10, потому здесь я запустил OpenVPN в режиме сервера:

# openvpn --ifconfig 10.8.0.1 10.8.0.2 --dev tun --secret /etc/openvpn/secret.key 0 --route 10.135.0.0 255.255.0.0 --verb 7

инструкция '--route' добавила локальный маршрут на сеть 10.135.0.0 через tun0 интерфейс.

На 10.135.28.233 я запустил OpenVPN в режиме клиента и подключаюсь к внешнему адресу сервера 10.129.18.182:

# openvpn --ifconfig 10.8.0.2 10.8.0.1 --dev tun --secret /etc/openvpn/secret.key 1 --remote 37.139.10.10 --route 10.129.0.0 255.255.0.0 --verb 7

Чтобы сервера 10.129.18.182 и 10.135.28.233 видели всю сеть я добавляю правила на них:

# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -P FORWARD ACCEPT
# iptables -t nat -s 10.8.0.0/24 -A POSTROUTING -o eth1 -j MASQUERADE

В конечном итоге сервера 10.129.18.182 и 10.135.28.233 видят все хосты в сетях.

Для того, чтобы 10.129.20.80 видел сеть 10.135.0.0/16 я добавляю для него новый маршрут:

# route add -net 10.135.0.0 netmask 255.255.0.0 gw 10.129.18.182

А для того, чтобы 10.135.32.170 видел сеть 10.129.0.0/16:

# route add -net 10.129.0.0 netmask 255.255.0.0 gw 10.135.28.233

И собственно проблема. Для того, чтобы 10.135.28.233 и 10.129.18.182 пересылали трафик на необходимую сеть я добавляю правило маршрутизации на 10.135.28.233:

# iptables -t nat -s 10.129.0.0/16 -A POSTROUTING -o tun0 -j MASQUERADE

А на 10.129.18.182 следующее:

# iptables -t nat -s 10.135.0.0/16 -A POSTROUTING -o tun0 -j MASQUERADE

И вот тут ничего не происходит: 10.129.20.80 так и не видит сеть 10.135.0.0/16, а 10.135.32.170 не видит сеть 10.129.0.0/16.

Похоже, что я не шарю и потому прошу о помощи.

P.S. Возможно эта картинка поможет понять то, что я хочу http://i.imgur.com/vVaiwlM.jpg

P.P.S. Для тестирования всего этого я использую хостинг Digital Ocean, если это важно.

 , ,

ipeacocks
()

Книга о Puppet

Форум — Admin

Посоветуйте хорошую книгу о Puppet. Чтоб не очень большая, побольше сути и best practices.

И да, я знаю, что существует много чего кроме Папита.

 , ,

ipeacocks
()

Ubuntu apt errors in LXC containers

Форум — Admin

Настроил бридж к физическому интерфейсу, чтоб каждый контейнер работал в той же сети как и хост, сеть отлично работает. Но apt часто выдает ошибки типа:

# sudo apt-get update
...
Get:27 http://archive.ubuntu.com wily-updates/universe Translation-en [29.6 kB]
Err http://archive.ubuntu.com wily/universe amd64 Packages                                                       
  
Err http://archive.ubuntu.com wily/universe amd64 Packages                                                       
  404  Not Found [IP: 91.189.91.24 80]
Fetched 14.6 MB in 8s (1710 kB/s)                                                                                
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/wily/universe/binary-amd64/Packages  404  Not Found [IP: 91.189.91.24 80]

E: Some index files failed to download. They have been ignored, or old ones used instead.

Причем http://archive.ubuntu.com/ubuntu/dists/wily/universe/binary-amd64/Packages.bz2 качается с контейнера отлично.

Установка некоторых пакетов в контейнерах сопровождается такими вот ошибками:

root@test:~# apt-get install mc
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  libglib2.0-0 libglib2.0-data libicu55 libssh2-1 libxml2 mc-data sgml-base shared-mime-info unzip xdg-user-dirs
  xml-core
Suggested packages:
  arj catdvi texlive-binaries dbview djvulibre-bin genisoimage gv imagemagick links w3m lynx odt2txt
  poppler-utils python python-boto python-tz xpdf pdf-viewer zip sgml-base-doc debhelper
The following NEW packages will be installed:
  libglib2.0-0 libglib2.0-data libicu55 libssh2-1 libxml2 mc mc-data sgml-base shared-mime-info unzip
  xdg-user-dirs xml-core
0 upgraded, 12 newly installed, 0 to remove and 0 not upgraded.
Need to get 7652 kB/11.9 MB of archives.
After this operation, 50.6 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://archive.ubuntu.com/ubuntu/ wily/main libicu55 amd64 55.1-4ubuntu1 [7652 kB]
Fetched 7652 kB in 1s (4887 kB/s)   
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/i/icu/libicu55_55.1-4ubuntu1_amd64.deb  Hash Sum mismatch

E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

Вот описал свою проблему детально https://github.com/lxc/lxc/issues/744 . Никто не сталкивался с подобным?

PS. Это пробовал http://askubuntu.com/a/41618/217142

 , ,

ipeacocks
()

Host IP не виден для LXC гостей. Open vSwitch bridge

Форум — Admin

Настроил Open vSwitch мост и повесил IP на него:

# ovs-vsctl add-br switch0
# ip add add 192.168.100.1/24 dev switch0
# ip a
...
4: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default 
    link/ether 52:9d:e1:60:1d:56 brd ff:ff:ff:ff:ff:ff
5: switch0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default 
    link/ether 16:63:eb:47:13:41 brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.1/24 scope global switch0
       valid_lft forever preferred_lft forever

Проверил статус моста после этого и, кажется, что все нормально:

# ovs-vsctl show
1b236728-4637-42a5-8b81-53d4c93a6803
    Bridge "switch0"
        Port "switch0"
            Interface "switch0"
                type: internal
    ovs_version: "2.3.2"

Создал 2 LXC контейнера и поставил им такие конфиги:

# vim /var/lib/lxc/veth03-ovs/config
...
lxc.network.type = veth
lxc.network.flags = up

lxc.network.script.up = /etc/lxc/ifup
lxc.network.script.down = /etc/lxc/ifdown
lxc.network.hwaddr = 00:16:3e:15:b3:62
lxc.network.ipv4 = 192.168.100.10
# vim /var/lib/lxc/veth04-ovs/config
...
lxc.network.type = veth
lxc.network.flags = up

lxc.network.script.up = /etc/lxc/ifup
lxc.network.script.down = /etc/lxc/ifdown
lxc.network.hwaddr = 00:16:3e:15:b3:62
lxc.network.ipv4 = 192.168.100.11

ifup и ifdown соответсвенно стартуют при поднятии и остановке сетевого стека для контейнера и выглядят так:

# cat /etc/lxc/ifup
#!/bin/bash

BRIDGE=”switch0″
ovs-vsctl –may-exist add-br $BRIDGE
ovs-vsctl –if-exists del-port $BRIDGE $5
ovs-vsctl –may-exist add-port $BRIDGE $5
# cat /etc/lxc/ifdown 

#!/bin/bash
BRIDGE=’switch0′
ovs-vsctl –if-exists del-port $BRIDGE $5

Стартую контейнеры и они видят друг друга:

# lxc-start -n veth04-ovs
# lxc-start -n veth03-ovs

# lxc-ls -f
NAME             STATE    IPV4            IPV6  GROUPS  AUTOSTART
-----------------------------------------------------------------
...
veth03-ovs       RUNNING  192.168.100.10  -     -       NO
veth04-ovs       RUNNING  192.168.100.11  -     -       NO
# lxc-attach -n veth03-ovs -- ping -c2 192.168.100.11
PING 192.168.100.11 (192.168.100.11) 56(84) bytes of data.
64 bytes from 192.168.100.11: icmp_seq=1 ttl=64 time=0.268 ms
64 bytes from 192.168.100.11: icmp_seq=2 ttl=64 time=0.055 ms

--- 192.168.100.11 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.055/0.161/0.268/0.107 ms
# lxc-attach -n veth04-ovs -- ping -c2 192.168.100.10
PING 192.168.100.10 (192.168.100.10) 56(84) bytes of data.
64 bytes from 192.168.100.10: icmp_seq=1 ttl=64 time=0.327 ms
64 bytes from 192.168.100.10: icmp_seq=2 ttl=64 time=0.062 ms

--- 192.168.100.10 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.062/0.194/0.327/0.133 ms

Но хост машина с IP 192.168.100.1 не видит ни 192.168.100.10, ни 192.168.100.11. Контейнеры тоже не пингуют 192.168.100.1.

Конфиг бриджа после старта виртуалок:

# ovs-vsctl show
1b236728-4637-42a5-8b81-53d4c93a6803
    Bridge "switch0"
        Port vethNSCEGY
            Interface vethNSCEGY
        Port "switch0"
            Interface "switch0"
                type: internal
        Port "vethD6TFEB"
            Interface "vethD6TFEB"
    ovs_version: "2.3.2"

Собственно по моему убеждению, хост тоже должен быть виден для контейнеров, так как сеть одна. Исправьте меня, если я неверно понимаю суть этого бриджинга в Open vSwitch.

Спасибо.

 , ,

ipeacocks
()

Почему OpenVZ не приняли в ядро

Форум — General

Собственно сабж. Читал, что Линус говорил, что многое не секюрно там, но по факту не понял о чем речь. Объясни же, лор!

 , ,

ipeacocks
()

LXC. Выделение IP гостю с того же диапазона, что и IP хост-машины.

Форум — Admin

Привет всем.

Немного изучаю LXC. Все базовое достаточно просто, но я вот не могу понять с бриджингом интерфейса.

Хост имеет айпи - 192.168.1.50 (192.168.1.50). Эту сеть обслуживает роутер с айпи 192.168.1.1. Гостю также хочу выделить айпи с этой же сети - 192.168.1.51.

Настраиваю бридж:

root@lxc-host:~# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
        address 192.168.1.50
        netmask 255.255.255.0
        gateway 192.168.1.1
        dns-nameservers 8.8.8.8
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0

br0 отлично работает, все хорошо.

Указываю использовать этот бридж-интерфейс контейнеру u1:

root@lxc-host:~# cat /var/lib/lxc/u1/config
# Template used to create this container: /usr/share/lxc/templates/lxc-download
# Parameters passed to the template:
# For additional config options, please look at lxc.container.conf(5)

# Distribution configuration
lxc.include = /usr/share/lxc/config/ubuntu.common.conf
lxc.arch = x86_64

# Container specific configuration
lxc.rootfs = /var/lib/lxc/u1/rootfs
lxc.utsname = u1

# Network configuration
lxc.network.type = veth
lxc.network.link = br0
lxc.network.flags = up
lxc.network.hwaddr = 00:16:3e:a1:c2:fe
lxc.network.ipv4 = 192.168.1.51/24

# define a gateway to have access to the internet
lxc.network.ipv4.gateway = 192.168.1.1

Конфигурация сети контейнера (хотя как я понимаю это все можно указывать только в /var/lib/lxc/u1/config):

root@lxc-host:~# cat /var/lib/lxc/u1/rootfs/etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.51
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8
root@lxc-host:~#

В конечном итоге в контейнер ставится верный айпи и верный роут:

root@u1:~# ip a
1: lo...
5: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:16:3e:a1:c2:fe brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.51/24 brd 192.168.1.255 scope global eth0
...
root@u1:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
root@u1:~#

192.168.1.51 и 192.168.1.50 успешно пингуют друг друга, но гость так и не может попингать роутер либо какой-то другой хост в сети и соответсвенно без доступа в интернет.

Аппармор и айпитейблз стопнуты.

Или LXC не умеет назначать контейнерам такой айпи?

Этот же топик на стековерфлоу http://stackoverflow.com/questions/33597327/lxc-containers-ip-from-the-same-n...

Спасибо.

ПС. Хост и гости - Ubuntu.

ППС. Хост - это виртуалка в Virtualbox, c bridged адаптером.

 , ,

ipeacocks
()

Выбор веб-фреймворка Python

Форум — Development

Всем йоу.

Хотелось бы почитать о каком-либо простом фреймворке на Python, но не знаю о каком лучше.

Начал читать о flask http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world, но автор немного пропускает и некоторые аспекты не совсем так очевидны. Но форм-фактор пошаговой инструкции - это конечно круто.

Хотел бы вообщем уметь писать несложные формочки и т.п. Т.е. становиться веб-разработчиком не планирую.

Посоветуйте книги или хорошие туториалы.

 , , ,

ipeacocks
()

Docker. Бридж

Форум — Admin

Всем добра!

Хочу сделать так чтоб докер-контейнер был в той же сети что и Хост-машина. Айпи Хост-машины - 192.168.1.2, ну а айпи докер-контейнера - 192.168.1.3. Но ничего не получается - прошу о помощи знающих.

Делаю все действия по этой доке https://docs.docker.com/articles/networking/#bridge-building:

Создал бридж:

# cat /etc/network/interfaces

auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet manual

auto bridge0
iface bridge0 inet static
        address 192.168.1.2
        network 192.168.1.0
        netmask 255.255.255.0
        broadcast 192.168.1.255
        gateway 192.168.1.1
        dns-nameservers 8.8.8.8 8.8.4.4
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0

И теперь состояние на интерфейсах (docker0 я удалил как и советует руководство https://docs.docker.com/articles/networking/#bridge-building)

root@docker:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bridge0 state UP group default qlen 1000
    link/ether 08:00:27:a5:22:5d brd ff:ff:ff:ff:ff:ff
4: bridge0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 08:00:27:a5:22:5d brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.2/24 brd 192.168.1.255 scope global bridge0
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fea5:225d/64 scope link 
       valid_lft forever preferred_lft forever
root@docker:~#

Маршруты на Хосте такие:

root@docker:~# ip r
default via 192.168.1.1 dev bridge0 
192.168.1.0/24 dev bridge0  proto kernel  scope link  src 192.168.1.2

Iptables тут же:

root@docker:~# sudo iptables -t nat -L -n
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DOCKER     all  --  0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type LOCAL

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
DOCKER     all  --  0.0.0.0/0           !127.0.0.0/8          ADDRTYPE match dst-type LOCAL

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain DOCKER (2 references)
target     prot opt source               destination  

Сеть на Хосте работает:

root@docker:~# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=52 time=35.6 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=52 time=36.0 ms
^C
--- 8.8.8.8 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 35.617/35.823/36.030/0.280 ms
root@docker:~# 

Идем дальше по доке https://docs.docker.com/articles/networking/#bridge-building:

# echo 'DOCKER_OPTS="-b=bridge0"' >> /etc/default/docker

Проверяем что внутри:

# cat /etc/default/docker
# Docker Upstart and SysVinit configuration file

# Customize location of Docker binary (especially for development testing).
#DOCKER="/usr/local/bin/docker"

# Use DOCKER_OPTS to modify the daemon startup options.
DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4"

# If you need Docker to use an HTTP proxy, it can also be specified here.
#export http_proxy="http://127.0.0.1:3128/"

# This is also a handy place to tweak where Docker's temporary files go.
#export TMPDIR="/mnt/bigdrive/docker-tmp"
DOCKER_OPTS="-b=bridge0"

Стартуем docker и создаем контейнер:

root@docker:~# service docker start
docker start/running, process 1413
root@docker:~# docker run -i -t ubuntu /bin/bash
Unable to find image 'ubuntu:latest' locally
511136ea3c5a: Pull complete 
511136ea3c5a: Download complete 
f3c84ac3a053: Download complete 
a1a958a24818: Download complete 
9fec74352904: Download complete 
d0955f21bf24: Download complete 
Status: Downloaded newer image for ubuntu:latest

В самом контейнере:

root@727346abe539:/#  ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
5: eth0: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:c0:a8:01:03 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.3/24 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:c0ff:fea8:103/64 scope link 
       valid_lft forever preferred_lft forever
root@727346abe539:/# 

Айпи на интерфейсе с той же сети 192.168.1.3.

Но пинги не идут:

root@727346abe539:/# ping 192.168.1.2
PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.
64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.061 ms
64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=0.058 ms
^C
--- 192.168.1.2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.058/0.059/0.061/0.007 ms
root@727346abe539:/# ping 192.168.1.41
PING 192.168.1.41 (192.168.1.41) 56(84) bytes of data.
^C
--- 192.168.1.41 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2014ms
root@727346abe539:/# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
From 192.168.1.2: icmp_seq=2 Redirect Host(New nexthop: 192.168.1.2)
From 192.168.1.2: icmp_seq=3 Redirect Host(New nexthop: 192.168.1.2)
From 192.168.1.2: icmp_seq=4 Redirect Host(New nexthop: 192.168.1.2)
^C
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 2998ms
root@727346abe539:/# 

Т.е. контейнер видит только хост-машину с айпи 192.168.1.2. На хосте нет разных селинуксов, аппарморов. Это убунта 14.04, как и в контейнере. Tcpdump, примером, на 192.168.1.41 не видит никаких icmp-пакетов от контейнера.

Таблица роутов на контейнере:

root@727346abe539:/# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.2     0.0.0.0         UG    0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
root@727346abe539:/# 

Айпитейблз на хост-машине, после старта контейнера:

root@docker:~# iptables -t nat -L -n
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DOCKER     all  --  0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type LOCAL

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
DOCKER     all  --  0.0.0.0/0           !127.0.0.0/8          ADDRTYPE match dst-type LOCAL

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  all  --  192.168.1.0/24       0.0.0.0/0           

Chain DOCKER (2 references)
target     prot opt source               destination         
root@docker:~# 

Т.е. вроде все верно (как я думаю), но контейнер ничего не видит :(

 , ,

ipeacocks
()

Tkinter (theme)

Форум — Development

Привет, ребятки

Хотел вот спросить есть ли возможность превратить приложение на Tkinter не в такое страшное на ОС Linux.

Вот примером на маке оно выглядит так: http://i.stack.imgur.com/drvgk.png

А вот на линуксе страшновато:

http://i.stack.imgur.com/eRNJK.png

Вот мой код

from Tkinter import *
import ttk

class App():
  def __init__(self, master):
    frame = Frame(master)
    frame.pack()

    master.title("Just my example")
    self.label = Label(frame, text="Type very long text:")

    self.entry = Entry(frame)

    self.button = Button(frame,
                         text="Quit", width=20,
                         command=frame.quit)


    self.slogan = Button(frame,
                         text="Hello", width=20,
                         command=self.write_slogan)

    self.label.grid(row=0, column=0)
    self.entry.grid(row=0, column=1)
    self.slogan.grid(row=1, column=0)
    self.button.grid(row=1, column=1)

  def write_slogan(self):
    print "Tkinter is easy to use!"


root = Tk()
app = App(root)
root.mainloop()

Был бы благодарен, если кто-то показал конкретное применение к этому коду.

 , ,

ipeacocks
()

Что выбрать в качестве веб-панели управления для LDAP (OpenLDAP)?

Форум — Admin

Привет.

Что лучше использовать в качестве веб-панели управления для LDAP (OpenLDAP)? Установил phpLDAPadmin, но есть подозрение. что, например, GOsa - более приемлимый вариант https://demo.gonicus.de/. Что вы можете посоветовать?

ОС Debian 7.

Спасибо.

 , ,

ipeacocks
()

Chrome x64 deb

Форум — Desktop

Всем ку.

Меня немного разочаровал последний хром, может ли кто-то выкласть старую версию, если есть?

Очень спасибо.

ipeacocks
()

Какую мониторинговую систему выбрать?

Форум — Admin

Сабж.

Юзал в основном Заббикс и Нагиос. Заббикс сильно геморный и сильно перегруженный опциями. Может что-то хорошее и новое появилось.

Спасибо.

 , ,

ipeacocks
()

Chef simple manual

Форум — Admin

Есть ли какой-либо вменяемый basic ман по Chef? Чтоб не читать кучу всего на оф сайте. Вменяемый, в моем понимании, это какой-то пошаговый по настройке чего-то реально простого по типу автоматического сетапа апача со своим конфигом.

Например такое как можно найти по Ansible http://lowendbox.com/blog/getting-started-with-ansible/

Или в того же Puppet-а все очень даже неплохо.

Спасибо.

 ,

ipeacocks
()

Вопрос по перенаправлению shell

Форум — Development

вот вижу один пример, и не совсем понимаю почему так все работает:

$ > xxx < yyy cat

в результате файл xxx очистится и в xxx будет то что было в yyy

а так не работает:

$ > xxx < cat yyy

bash: cat: No such file or directory

Почему bash ожидает получить первым аргументом файл?

 , ,

ipeacocks
()

Bridge OpenVZ контейнер

Форум — Admin

Не желая сетапать отдельное ядро на свой локалхост, надумал все сделать у виртуалбоксе с CentOS. CentOS получает интернет с использованием настроек Bridget Adapter к eth0:

http://www.zimagez.com/zimage/screenshot-130114-010354.php

Установил последнее ядро от OpenVZ и утилиты. Настроил бридж и теперь все так:

[root@centos conf]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:1b:39:80 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::a00:27ff:fe1b:3980/64 scope link 
       valid_lft forever preferred_lft forever
3: vmbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN 
    link/ether 08:00:27:1b:39:80 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.30/24 brd 192.168.1.255 scope global vmbr0
    inet6 fe80::a00:27ff:fe1b:3980/64 scope link 
       valid_lft forever preferred_lft forever
4: venet0: <BROADCAST,POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN 
    link/void 
    inet6 fe80::1/128 scope link 
       valid_lft forever preferred_lft forever
6: veth102.0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN 
    link/ether fe:ff:ff:ff:ff:ff brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fcff:ffff:feff:ffff/64 scope link 
       valid_lft forever preferred_lft forever
[root@centos conf]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 vmbr0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 vmbr0
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 vmbr0
[root@centos conf]# 

Бридж настраивал как сдесь (Create a VETH Container):

http://openvz.org/Quick_Installation_CentOS_6

Захожу в контейнер (там тоже CentOS) и проверяю настройки:

[root@server102 /]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: venet0: <BROADCAST,POINTOPOINT,NOARP> mtu 1500 qdisc noop state DOWN 
    link/void 
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN 
    link/ether 00:18:51:a6:29:b0 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.47/24 brd 192.168.1.255 scope global eth0
    inet6 fe80::218:51ff:fea6:29b0/64 scope link 
       valid_lft forever preferred_lft forever
[root@server102 /]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth0
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
[root@server102 /]# 

Т.е. вроде бы все верно, контейнер может пинговать хост машину, хост машина контейнер, но все отальные IP c той же сети не пингуются и выхода в Интеренет нет (а хотелось чтоб был):

[root@centos conf]# ping 192.168.1.47
PING 192.168.1.47 (192.168.1.47) 56(84) bytes of data.
64 bytes from 192.168.1.47: icmp_seq=1 ttl=64 time=0.039 ms
64 bytes from 192.168.1.47: icmp_seq=2 ttl=64 time=0.037 ms
64 bytes from 192.168.1.47: icmp_seq=3 ttl=64 time=0.038 ms
^C
--- 192.168.1.47 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2166ms
rtt min/avg/max/mdev = 0.037/0.038/0.039/0.000 ms


# ping 192.168.1.30
PING 192.168.1.30 (192.168.1.30) 56(84) bytes of data.
64 bytes from 192.168.1.30: icmp_seq=1 ttl=64 time=0.093 ms
64 bytes from 192.168.1.30: icmp_seq=2 ttl=64 time=0.043 ms
64 bytes from 192.168.1.30: icmp_seq=3 ttl=64 time=0.043 ms
^C
--- 192.168.1.30 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2087ms

Вопрос в том что я не так делаю? Посоветуйте что-либо или киньтесь маном. Спасибо!

 , , ,

ipeacocks
()

Вопрос по cacti (SNMP)

Форум — Admin

Добавил запуск скрипта в /etc/snmp/snmpd.conf и он через snmpwalk все верно отрабатывает:

# snmpwalk -v 2c -c secret 192.168.1.105 .1.3.6.1.4.1.2021.8.1.101.1
iso.3.6.1.4.1.2021.8.1.101.1 = STRING: "7772"

Добавляю график в cacti таким образом:

New Graphs --> Выбираю хост --> Выбираю темплейт «SNMP-Generic OID Template»--> Вписываю OID выше. И я на выходе получаю ошибку:

ERROR: opening '/var/lib/cacti/rra/snmp_oid_29.rrd': No such file or directory

и график, который не рисуется.

Может кто-то подскажет что я делаю не так?

Спасибо.

 ,

ipeacocks
()

Вопрос по MySQL Galera.

Форум — Admin

Настраиваю MySQL Galera. И у меня все прекрасно получилось по ману http://www.percona.com/doc/percona-xtradb-cluster/howtos/ubuntu_howto.html .

Ну вот читаю официальный ман http://www.codership.com/wiki/doku.php?id=info и там написано что использовать пустой «wsrep_cluster_address=gcomm://» а нужно делать по-новому «mysqld --wsrep_new_cluster».

Bootstrapping a new cluster

To bootstrap a new cluster you need to start the first mysqld server with an empty cluster address URL specified either in my.cnf or on the command line:

$ mysqld --wsrep_new_cluster
This implies to the server that there is no existing cluster to connect to and it will create a new history UUID.

Restarting the server with the same setting will cause it to create new history UUID again, it won't reconnect to the old cluster. See next section about how to reconnect to existing cluster.

>>>Older versions used empty gcomm:// address to create a cluster. This behaviour is deprecated. Never put empty gcomm address in my,cnf! Use –wsrep-_new_cluster option on the command line instead.

Adding another node to a cluster

Once you have a cluster running and you want to add/reconnect another node to it, you must supply an address of one of the cluster members in the cluster address URL. E.g. if the first node of the cluster has address 192.168.0.1, then adding a second node would look like

$ mysqld --wsrep_cluster_address=gcomm://192.168.0.1  # DNS names work as well
The new node only needs to connect to one of the existing members. It will automatically retrieve the cluster map and reconnect to the rest of the nodes.

Once all members agree on the membership, state exchange will be initiated during which the new node will be informed of the cluster state. If its state is different from that of the cluster (which is normally the case) it will request snapshot of the state from the cluster 5) and install it before becoming ready for use.

Я же так пробовал и у меня ничего не подключалось к первой ноде (смотрел по статусу в mysql). Т.е. я взял первую ноду и запустил там

$ mysqld --wsrep_new_cluster

На следующих:

$ mysqld --wsrep_cluster_address=gcomm://192.168.0.1

(192.168.0.1 - первая нода)

Что же я делал не так?

 , , wresp

ipeacocks
()

LibreOffice 4.1 with Kalahari icon set

Галерея — Скриншоты

Постоянно говорят, что Либра выглядит страшно (особенно в KDE) и это правда. Но с набором иконок Kalahari все значительно лучше и все не попсово как с Faenzа.

Ман и icon set можно загрузить по ссылке: http://gnome-look.org/content/show.php/?content=157970

С боковой панелькой выглядит так http://postimg.org/image/4rpw2eo4j/full/

>>> Просмотр (1920x1060, 479 Kb)

 ,

ipeacocks
()

Изучение Python 3

Форум — Development

Привет!

Некоторое время назад я спрашивал уважаемую общетвенность Лора о том с какой книги начинать учить Питон Книга по Python

И вот теперь я был бы благодарен тому, кто посоветует ресурс с как можно большим количеством разнообразных примеров кода (конечно не сложного, так как я еще учусь) и желательно нормально прокоментированного.

Спасибо.

 ,

ipeacocks
()

Nvidia tearing 2

Форум — Desktop

Вот совсем недавно спрашивал как побороть tearing (vsync) Nvidia tearing . И до этого времени пользовался компизом ppa:smspillaz/compiz-experimental. Со вчерашнего дня пакет обновился и компиз перестал работать вообще, а сегодня похоже этот ppa вообще удалили.

Использовал компиз только из-за vsync и стандартный из репозиториев глючит довольно серьезно (например, нельзя было закрыть развернутые на ввесь екран окна firefox и libreoffice ). Cтандартными средствами XFCE 4.10 tearing победить невозможно.

Попробовал compton и он дает приемлемый результат только с xrender в качестве бекенда, но с ним заметны полосы (где-то около 3-4 в верхней части экрана) в динамичных сценах видео.

Вопрос собственно в том что с этим делать, и можно ли как-то это победить.

Xubuntu 13.04 + Nvigia Geforce GT 630

 , , , ,

ipeacocks
()

RSS подписка на новые темы