10 заметок с тегом

nix

Установка git + gitolite на CentOS 7

Подразумеваем, что уже установлена CentOS 7 со всеми обновлениями (yum update).
Сначала подготовим платформу:

yum install perl-devel gcc wget
wget http://search.cpan.org/CPAN/authors/id/S/SM/SMUELLER/Data-Dumper-2.154.tar.gz
tar xvzf Data-Dumper-2.154.tar.gz
cd Data-Dumper-2.154
perl Makefile.PL
make && make install

Дальше устанавливаем git:

yum install git

Создаем пользователя:

useradd -p PASSWORD git

В файле /etc/ssh/sshd_config (не путать с ssh_config) и раскомментируем строки:

RSAAutentification yes
PubkeyAutentification yes
AuthorizedKeysFile .ssh/authorized_keys

Перезапускаем на сервере демон sshd:

service sshd restart

Заходим под пользователем git:

su git
cd ~

Создаем ключ для пользователя git (с именем, например, id_git):

ssh-keygen -t rsa -b 2048

Из под root выставляем права:

chown git:git /home/git/.ssh/id_git.pub
chmod 700 /home/git/.ssh/
chmod 600 /home/git/.ssh/authorized_keys

Создадим недостающие папки:

mkdir /home/git/.gitolite
mkdir /home/git/.gitolite/logs

Устанавливаем gitolite из под git:

git clone git://github.com/sitaramc/gitolite
mkdir -p ~/bin
gitolite/install -ln ~/bin
gitolite setup -pk id_git.pub

Если последняя команда вызывает ошибку, то:

$HOME/bin/gitolite setup -pk ~/.ssh/id_git.pub

Дальше стягиваем себе репозиторий:

git clone git@host:gitolite-admin

Настраиваем под свои нужды и заливаем изменения на сервер.

 23   2015   git   nix

Меняем URL Redmine по умолчанию на корневой

Нужно закомментировать строку «SetEnv RAILS_RELATIVE_URL_ROOT» и удалить «/redmine» в параметре PassengerPreStart URL в файле /opt/bitnami/apps/redmine/conf/httpd-app.conf:

<Directory "/opt/bitnami/apps/redmine/htdocs/public">
    Options -MultiViews
    <IfVersion < 2.3 >
    Order allow,deny
    Allow from all
    </IfVersion>
    <IfVersion >= 2.3>
    Require all granted
    </IfVersion>
    # SetEnv RAILS_RELATIVE_URL_ROOT "/redmine"
    PassengerAppRoot "/opt/bitnami/apps/redmine/htdocs"
    <IfModule pagespeed_module>
        ModPagespeedDisallow "*"
    </IfModule>
</Directory>

PassengerPreStart http://127.0.0.1/

Закомментировать псевдонимы и директорию с веб-мордой в DocumentRoot в файле /opt/bitnami/apps/redmine/conf/httpd-prefix.conf:

# Alias /redmine/ "/opt/bitnami/apps/redmine/htdocs/public/"
# Alias /redmine "/opt/bitnami/apps/redmine/htdocs/public"

DocumentRoot "/opt/bitnami/apps/redmine/htdocs/public"

Include "/opt/bitnami/apps/redmine/conf/httpd-app.conf"

Проверить правильность конфигов:

$ sudo apachectl -t
Syntax OK

Наконец, если нет ошибок в конфигах, перезапустить Apache:

sudo /opt/bitnami/ctlscript.sh restart apache
 15   2014   nix   web

Nginx как прокси для Apache2

Имеем сервер под Linux Debian

# uname -a
Linux server 2.6.18-6-686 #1 SMP Mon Oct 13 16:13:09 UTC 2008 i686 GNU/Linux
# nginx -V
nginx version: nginx/1.1.17
# apache2 -V
Server version: Apache/2.2.9 (Debian)

Конфигурация Nginx

# cat /usr/local/nginx/conf/sites-enabled/blog.a-zazell.ru
server {

listen 93.190.18.10:80;
server_name blog.a-zazell.ru ;

root /var/www/a-zazell.ru/blog/wp;
index index.php;

access_log  /var/log/nginx/blog.a-zazell.ru_access.log;
error_log  /var/log/nginx/blog.a-zazell.ru_error.log;
# Все проксируем без кэширования на Apache2
location / {
    proxy_pass http://127.0.0.1:8888/;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    proxy_redirect     off;
    client_max_body_size       10m;
    proxy_cache off;
}
# Статику отдает Nginx
location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|swf|js|html|txt)$ {
    #log_not_found off;
}
# Если нет иконки, не надо мусорить в Лог
location = /favicon.ico {log_not_found off;access_log off;}
# Смотреть файлы с точки НЕЛЬЗЯ
location ~ /\. {deny all;access_log off;log_not_found off;}
# Роботам в Лог не сорить
location = /robots.txt { access_log off; log_not_found off; }

}
# Переносим Всех, кто зашел на http://a-zazell.ru в блог
server {
listen 93.190.18.10:80;
server_name www.a-zazell.ru a-zazell.ru;
return 301 http://blog.a-zazell.ru;
}

Конфигурация Apache2

# cat /etc/apache2/sites-enabled/blog.a-zazell.ru
<VirtualHost *:8888>

ServerName blog.a-zazell.ru
ServerAdmin mail@a-zazell.ru
DocumentRoot /ftp/httpd/a-zazell.ru/blog/wp

ErrorLog /var/log/apache2/blog.a-zazell.ru_error.log
TransferLog /var/log/apache2/blog.a-zazell.ru_access.log

RewriteEngine On
<Directory /var/www/a-zazell.ru/blog/wp/>
 Options -Indexes FollowSymLinks Includes ExecCGI
 AllowOverride All
 order deny,allow
 allow from all
</Directory>
</VirtualHost>

Вышеописанной конфигурации вполне достаточно. Еще не забудьте добавить в Apache2 модуль rpaf (libapache2-mod-rpaf).

(c) blog.a-zazell.ru

 11   2014   nix   web

Разворачивание TFTPD Server на Ubuntu

  1. Устанавливаем пакеты
sudo apt-get install xinetd tftpd tftp
  1. Создаем файл
touch /etc/xinetd.d/tftp

и вставляем в него содержимое

service tftp
{
protocol        = udp
port            = 69
socket_type     = dgram
wait            = yes
user            = nobody
server          = /usr/sbin/in.tftpd
server_args     = /home/user/tftpboot
disable         = no
}
  1. Создаем папку tftpboot
sudo mkdir ~/tftpboot
sudo chmod -R 777 ~/tftpboot
sudo chown -R nobody ~/tftpboot
  1. Перезапускаем xinetd.
sudo /etc/init.d/xinetd stop
sudo /etc/init.d/xinetd start

Готово!

Проверяем нам tftp сервер

  1. Создаем файл с произвольным содержанием в папке TFTP сервера ~/tftpboot
/tftpboot/test
sudo chmod -R 777 /tftpboot
ls /tftpboot/test -lh
-rw-r--r-- 1 user user 159 2014-02-05 10:48 test
  1. Подключаемся к tftp серверу (у меня IP сервера 10.0.0.2)
tftp 10.0.0.2
tftp> get test
Sent 159 bytes in 0.0 seconds
tftp> quit
ls test -lh
-rw-r--r-- 1 user user 159 2014-02-05 10:48 test
 9   2014   nix

Установка и настройка TeamCity под Ubuntu

Потребовалось поднять TeamCity для наших разработчиков. Вооружившись Google и терпением начал изучать различные мануалы.
Имеем Ubuntu Server 13.10 amd64, Apache 2, свежий TeamCity.

Распаковываем скаченный архив TeamCity в /var/www/teamcity
Меняем владельца:

sudo chown -R www-data /var/www/teamcity

Если хочется, то меняем порт на котором висит Teamcity:

sudo nano /var/www/teamcity/conf/server.xml

Создаем файл запуска:

touch /etc/init.d/teamcity

со следующим содержанием:

#!/bin/sh
# /etc/init.d/teamcity -  startup script for teamcity
export TEAMCITY_DATA_PATH="/var/www/teamcity/.BuildServer"

case $1 in
start)
 start-stop-daemon --start  -c www-data --exec /var/www/teamcity/bin/teamcity-server.sh start
;;

stop)
 start-stop-daemon --start -c www-data  --exec  /var/www/teamcity/bin/teamcity-server.sh stop
;;

esac

exit 0

Не забываем сделать его запускаемым

sudo chmod 0755 /etc/init.d/teamcity

Теперь регистрируем скрипт запуска:

sudo update-rc.d teamcity defaults

Запускаем вручную:

sudo /etc/init.d/teamcity start

Получим ошибку, если не установлена Java
Устанавливаем Java:

sudo apt-get purge openjdk*
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install openjdk-7-jdk

ИЛИ

sudo apt-get install oracle-java7-installer

Теперь все запустится на порту 8111 (по умолчанию), но хочется на 80 порту все иметь (проще). Для этого используем Apache в роли прокси.
Доустанавливаем необходимые модули:

sudo apt-get install libapache2-mod-proxy-html libapache2-mod-gnutls

Активируем модуль

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo /etc/init.d/apache2 restart

Создаем новый virtualHost в папке /etc/apache2/sites-available

sudo touch /etc/apache2/sites-available/teamcity.conf

Содержание примерно следующее:

<VirtualHost *:80>
    ServerAdmin admin@contoso.com
    ServerAlias teamcity.contoso.com
    ProxyRequests Off
    ProxyPreserveHost On
    ProxyVia full

    <proxy *>
    Order deny,allow
    Allow from all
    </proxy>

    ProxyPass        /  http://192.168.0.5:8111/
    ProxyPassReverse /  http://192.168.0.5:8111/

</VirtualHost>

где 192.168.0.5 сервер где крутится TeamCity
Активируем наш виртуальный хост:

sudo a2ensite teamcity.conf

И перезагружаем Apache:

sudo /etc/init.d/apache2 reload

Не забываем прописать на DNS сервере A-запись

192.168.0.5 A teamcity.contoso.com

Разворачивание из бекапа


Если бекап TeamCity_Backup_20140725_170732.zip
Для того, что бы восстановить (при обновлении или еще после чего) следуем по шагам:

  1. останавливаем сервис Teamcity:
/etc/init.d/teamcity stop
  1. Копируем в корень TeamCity файл database.hsqldb.properties.dist из /var/www/teamcity/.BuildServer/config (считаем, что БД у нас HSQLDB)
  2. Удаляем все из /var/www/teamcity/.BuildServer/config/ и /var/www/teamcity/.BuildServer/system/
  3. Идем в папку bin:
cd /var/www/teamcity/bin
  1. Запускаем восстановление:
./maintainDB.sh restore -F TeamCity_Backup_20140725_170732.zip -A /var/www/teamcity/.BuildServer/ -T /var/www/teamcity/database.hsqldb.properties.dist

Если хочет получить переменную JAVA_HOME, то даем так:

export JAVA_HOME=/usr/lib/jvm/java-7-oracle
  1. Запускаем сервис TeamCity
/etc/init.d/teamcity start
  1. Заходим в веб-морду и следуем инструкциям
 7   2013   nix

phpmyadmin — mcrypt extension is missing

После установки apache/nginx и заливки PHPMyAdmin в интерфейсе последнего можно обнаружить ошибку The mcrypt extension is missing. Please check your PHP configuration.

Решение есть:

sudo apt-get install php5-mcrypt
cd /etc/php5/apache2/conf.d
sudo ln -s ../../conf.d/mcrypt.ini 30-mcrypt.ini
sudo service apache2 restart

или

sudo apt-get install php5-mcrypt
mv -i /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/
sudo php5enmod mcrypt
sudo service apache2 restart
 16   2013   nix   phpmyadmin

Установка VMWare Tools в Ubuntu Server под ESXi

VMWare классная платформа с которой удобно работать. К сожалению, что бы гостевые системы работали шустрее и позволить VMWare выполнять определенные функции (перезагрузка, выключение и пр.) необходимо накатить VMWare Tools. На Windows гостевые ОС установка тривиальна, однако под Linux для некоторых это действие может вызвать ступор.
Итак, у вас есть машина с развернутой ESXi и уже созданной виртуальной машиной, например, Ubuntu Server 13.10.

Во-первых, нужно смонтировать образ VMWare Tools в виртуальный привод (VM -> Guest -> Install/Upgrade VMWare Tools).
А теперь монтируем в нашей гостевой системе:

cd /mnt
mkdir cdrom
mount /dev/cdrom /mnt/cdrom/
cd /mnt/cdrom

Теперь заходим в папку примонтированого CD, смотрим что внутри и копируем во временную папку нашей машины.

ls -al
cp VM*.gz /tmp/

Переходим во временную папку и разархивируем файл:

cd /tmp
tar xvzf VM*.gz

Переходим в папку и запускаем установку:

cd vmware-tools-distrib/
./vmware-install.pl

Отвечаем на все вопросы (можно жать везде Enter).
Ну все, все должно было встать, теперь делаем перезагрузку виртуальной системы:

reboot

и используем нашу систему.

 5   2013   esxi   nix

Устранение ошибок при сборке Zabbix

При сборке Zabbix из сорсов, возникают ошибки с зависимостями.

Решение для устранения зависимостей под Debian:
Flag:

--with-mysql

Error:

configure: error: MySQL library not found

Fix:

sudo apt-get install libmysqlclient-dev

Flag:

--with-jabber

Error:

checking for IKSEMEL... configure: error: Jabber library not found

Fix:

sudo apt-get install libiksemel-dev

Flag:

--with-libcurl

Error:

configure: error: Curl library not found

Fix:

sudo apt-get install libcurl4-openssl-dev

Flag:

--with-net-snmp

Error:

configure: error: Not found NET-SNMP library

Fix:

sudo apt-get install libsnmp-dev

Flag:

--with-openipmi

Error:

configure: error: Invalid OPENIPMI directory - unable to find ipmiif.h

Fix:

sudo apt-get install libopenipmi-dev

Flag:

--with-libxml2

Error:

configure: error: LIBXML2 library not found

Fix:

sudo apt-get install libxml2-dev
 6   2013   nix

GTF & Modeline

Что бы получить правильную строку Modeline для xorg.conf нужно воспользоваться командой gtf (под никсами) или найти калькулятор

Синтаксис gtf:

gtf HRes VRes RefrashRate
 9   2013   nix

Очистка кэша Squid

Иногда бывает необходимо очистить кэш Squid. Что бы определить где лежат кэшируемые данные нужно найти в squid.conf (обычно /etc/squid/squid.conf) строчку, начинающуюся с cache_dir. Останавливаем squid-сервер

/etc/rc.d/squid stop

Удаляем содержимое каталога с кэшируемыми файлами

rm -r /var/squid/cache/*

Создайте заново кэш сервера SQUID

/etc/rc.d/squid -z

Запускаем Squid

/etc/rc.d/squid start
 5   2013   nix