вторник, 23 февраля 2016 г.

Ansible: playbook установки nginx

Тут я рассказывал, как я первый раз устанавливал ansible: http://blog.amet13.name/2016/02/ansible.html

В этой части я создам свой первый полезный playbook.

В предыдущей части я использовал так называемый Ad-Hoc режим.
Для Ad-Hoc режима используется команда /usr/bin/ansible.
Для плейбуков используется команда /usr/bin/ansible-playbook. Плейбуки - это файлы в формате YAML (.yml) которые содержат описание необходимых для выполнения операций.

суббота, 20 февраля 2016 г.

Ansible: введение

Первое мое знакомство с ansible, крутая штука.
В этой заметке оставлю основные выдержки из вводной документации: http://docs.ansible.com/ansible/intro.html

В VirtualBox развернул Virtuozzo 7, а в нем окружение, в котором я буду тестировать ansible.
Выглядит это так, ansible.host.tld - мастер-сервер ансибла, остальные три виртуалки подопытые кролики:
[root@virtuozzo ~]# prlctl list -o name,ip,ostemplate,hostname
NAME           IP_ADDR         OSTEMPLATE             HOSTNAME
ansible-c7     192.168.0.151   .centos-7-x86_64       ansible.host.tld
centos7        192.168.0.154   .centos-7-x86_64       centos7.host.tld
debian8        192.168.0.153   .debian-8.0-x86_64     debian8.host.tld
ubuntu14       192.168.0.152   .ubuntu-14.04-x86_64   ubuntu14.host.tld

воскресенье, 14 февраля 2016 г.

ERROR 1010 (HY000): Error dropping database (can't rmdir './foodb', errno: 39)

При попытке удаления БД возникает ошибка:
mysql> drop database foodb;
ERROR 1010 (HY000): Error dropping database (can't rmdir './foodb', errno: 39)

Решение:
# cd /var/lib/mysql
# rm -fr foodb
# mysql -uroot -ppass -e 'drop database foodb;'
ERROR 1008 (HY000): Can't drop database 'foodb'; database doesn't exist
# mysql -uroot -ppass -e 'create database foodb;'
Query OK, 1 row affected (0.00 sec)
# mysql -uroot -ppass -e 'drop database foodb;'
Query OK, 0 rows affected (3.38 sec)

via.

среда, 10 февраля 2016 г.

Как упростить себе жизнь, работая с кучей однотипных серверов

Имеется куча серверов с хостнеймами а-ля:
ns1.domain1.com
ns2.domain1.com
isp1.domain1.com
isp2.domain1.com
cpanel1.domain2.com
cpanel2.domain2.com
mx1.domain2.com
mx2.domain2.com
и т.д.

Гораздо удобнее использовать сетевые утилиты (ping/host/traceroute/mtr/dig...) не к полному хостнейму, а только к части домена.
Например вместо:
ping ns1.domain1.com
писать:
ping ns1

Тут нам помогут поисковые домены.
В Ubuntu/Mint сделать это просто:
$ sudo echo "search domain1.com domain2.com" >> /etc/resolvconf/resolv.conf.d/base

После этого нужно перезагрузить сеть (я это делаю включением/отключением иконки на панели задач в MATE).

Проверка:
$ ping ns1
PING ns1.domain1.com (192.168.0.44) 56(84) bytes of data.

$ host isp1
isp1.domain1.com has address 192.168.0.45

$ traceroute mx1
traceroute to mx1 (192.168.0.46), 30 hops max, 60 byte packets

среда, 3 февраля 2016 г.

Не работает квота в ISPmanager

При попытке установить для юзера дисковую квоту возникает ошибка. Все это в контейенере OpenVZ.
В логах ISPmanager примерно такое:
Feb  3 22:37:14 [1039:161] account ERROR Failed to set quota: 'setquota: Cannot stat() mounted device simfs: No such file or directory
setquota: Mountpoint (or device) / not found or has no quota enabled.
setquota: Not all specified mountpoints are using quota.

Решение проблемы для ISPmanager 5:
# ln -s /simfs /usr/local/mgr5/simfs

Для ISPmanager 4:
# ln -s /simfs /usr/local/ispmgr/simfs

Если это не помогает, то можно попробовать так:
# mv /simfs /simfs_
# ln -s /dev/simfs /simfs
# unlink /usr/local/mgr5/simfs
# ln -s /dev/simfs /usr/local/mgr5/simfs
# killall core

Если и это не помогло, то значит дело в квотах OpenVZ.
# vzctl stop $CTID
# vzquota drop $CTID
# vzctl start $CTID