Hetzner + FreeBSD (8.2) + ISPmanager

Ось накидаю собі короткий мануальчик по розгортанні з нуля мінімально придатної (для більшості проектів) інфраструктури на VDS’ках немаловідомої компанії. На неї натрапив дякучи вчасній згадці @pfactum, і, незважаючи на неоднозначний досвід інших замовив собі vServer VQ 12.

Таким чином за 10 € (компанія повертає 18 % VAT, якщо ви не є резидентом країн Євросоюзу), ви отримуєте щось таке:

CPU: QEMU Virtual CPU version 0.12.3 (3074.35-MHz K8-class CPU);
RAM: 1024 MB;
Hard discs: 40 GB HDD;
NIC: 100 MBit;
Traffic: 2 TB (після використання двох ТБ швидкість пада до 10 Мбіт).

Таким чином я ризикнув і не пошкодував. Єдиним мінусом наразі видаєтсья час роботи та надмірна педантичність: достукатись можна тільки з понеділка по п’ятницю з 9 до 18 по CET (центральноєвропейський час). Оскільки так трапилось, що замовлення було зроблено в пятницю близько обіду, то цілком передбачувано сервер я отриимав тільки в понеділок зранку. Також варто відзначити, що компанія вимагає зіскановану копію паспорта (цілком імовірно що не тільки для контролю того, повертати VAT чи ні), однак у моєму випадку вистачило і фотографії, зробленої зі смартфона (перша сторінка мого українського (не закордонного) паспорту).

Після опрацювання замовлення вам надають досутп до панелі (robot.your-server.de), звідки ви можете контролювати свої наявні сервери, а також замовити нові. Там ви отримуєте можливість моніторити стан свого серверу, вмикити/вимикати/ребутати його, розгортати інсталяційний образ (чи образ відновлення), браузерну консоль і ще багато всіляких речей. Власне я більш прихильний до консолі та ssh, тому всі дії я проводив звідти.

В якості системи для встановлення було обрано FreeBSD 8.2, власне там доступні (на даний момент) по одному релізу гілок 7.x та 8.x. Встановлення максимально просте та швидке — вибираєм FreeBSD в налаштуваннях resque режиму, зберігаємо автоматично згенерований пароль та ребутаємось через панель. Потім чекаємо певний час та чіпляємося по ssh, розгортаємо образ, та ребутаємось:

bash> ssh xxx.xxx.xxx.xxx -l root
bash> intallimage
bash> reboot

Потім власне в декого може виникнути баг схожий на щось на кшталт:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
88:1d:b3:49:1b:43:54:36:87:09:d7:ba:63:83:e9:c6.
Please contact your system administrator.
Add correct host key in ~/.ssh/known_hosts to get rid of this message.
Offending RSA key in ~/.ssh/known_hosts:6
RSA host key for xxx.xxx.xxx.xxx has changed and you have requested strict checking.
Host key verification failed.

Чесно кажучи, не знаю як там користувачі Windows із цією проблемою, однак у linux’і достатньо буде видалння останнього рядка (того, який відповідає за ssh сертифікати resque системи).

Власне, у моєму випадку далі все було досить банально:

bash> fetch "http://download.ispsystem.com/install.sh"

bash> sh install.sh
Ну і вибір необхідних пунктів. По суті мій шлях складався із пунктів 1-2-3-2 і пройшов без суттєвих ускладнень. Єдиний баг — панель вперто не хотіла помічати власну ж версію ядра, тому після того, як я переконався в коректності ядра я опустив крок, на якому зациклювалась інсталяція та продовжив встановлення.

Звісно ж, ви можете піти іншим шляхом і не встановлювати панель (якщо вона вам непотрібна, на відміну від мене), або ж встановити іншу ос/набір ПЗ, тут все залежить виключно від ваших потреб і досвіду/зручності.

Ну а далі конфіги, заради яких власне і писалася ця нотатка:
~/.bashrc (після логіну по ssh, стартують screen’и, вельми зручно)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# Auto-screen invocation. see: http://taint.org/wk/RemoteLoginAutoScreen                                                                                                         
# if we're coming from a remote SSH connection, in an interactive session
# then automatically put us into a screen(1) session.   Only try once
# -- if $STARTED_SCREEN is set, don't try it again, to avoid looping
# if screen fails for some reason.
if [ "$PS1" != "" -a "${STARTED_SCREEN:-x}" = x -a "${SSH_TTY:-x}" != x ]
then
  STARTED_SCREEN=1 ; export STARTED_SCREEN
  [ -d $HOME/lib/screen-logs ] || mkdir -p $HOME/lib/screen-logs
  sleep 1
  screen -RR && exit 0
  # normally, execution of this rc script ends here...
  echo "Screen failed! continuing with normal bash startup"
fi
# [end of auto-screen snippet]
 
PWD() { pwd; }
GIT_PS1()
{
  M="`git branch 2>/dev/null | grep "^\*" | tr -d "\*"`"
  [ -n "$M" ] && echo "(git branch: $M)"
}
 
PS1="\[\033[01;37m\](\u@\h: \[\033[1;36m\]\$(PWD)\[\033[01;37m\]) \[\033[01;37m\] \[\033[0m\] \$(GIT_PS1) \nbash> " 
 
alias pgc="ping google.com"
alias pgd="ping 8.8.8.8"
alias pse="ps -e | grep "
alias dmt="dmesg | tail"
alias cpu_info="dmesg | grep -i cpu"
export HISTSIZE=100000
export EDITOR="vim"

~/.screenrc (по позамовчуванню top в одному з двох табів)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
startup_message off
vbell off
autodetach on
altscreen on
shelltitle "$ |bash"
defscrollback 10000
defutf8 on
nonblock on
 
hardstatus alwayslastline                                                                                                                          
#hardstatus alwaysfirstline                                                                                                                          
#hardstatus string '%{= mK}%-Lw%{= KW}%50>%n%f* %t%{= mK}%+Lw%< %{= kG}%-=%D %d %M %Y %c:%s%{-}'
hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %d/%m %{W}%c %{g}]'
#hardstatus string '%{= kw}[ %{= kb}%H%{= kw} ][ %= %{= kw}%?%-Lw%?%{= kr}(%{= kW}%n*%f %t%?(%u)%?%{= kr})%{= kw}%?%+Lw%?%?%= %{w} ][ %{r}%l%{w} ]%{w}[%{r} %d/%m/%y %C %A %{w}]%{w}'
#hardstatus string '%{= kw}[ %{= kb}%H%{= kw} ][%= %{= kw}%?%-Lw%?%{= kW}%n*%f %t%?%?%{= kw}%?%+Lw%?%?%= ][ %{r}%l%{w} ]%{w}[%{r} %d/%m/%y %C %A %{w}]%{w}'
bind 'q' quit
 
screen -t top 0 top
screen -t aiko 0

~/.vimrc (нічого особливого, трішки вуличної магії)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
"Use Vim settings, rather then Vi settings (much better!).                                                                                                                       
"This must be first, because it changes other options as a side effect.
set nocompatible
 
"allow backspacing over everything in insert mode
set backspace=indent,eol,start
 
"store lots of :cmdline history
set history=1000
 
set showcmd     "show incomplete cmds down the bottom
set showmode    "show current mode down the bottom
 
set incsearch   "find the next match as we type the search
set hlsearch    "hilight searches by default
 
set number      "add line numbers
set showbreak=...
set wrap linebreak nolist
 
"mapping for command key to map navigation thru display lines instead
"of just numbered lines
vmap <d -j> gj
vmap </d><d -k> gk
vmap </d><d -4> g$
vmap </d><d -6> g^
vmap </d><d -0> g^
nmap </d><d -j> gj
nmap </d><d -k> gk
nmap </d><d -4> g$
nmap </d><d -6> g^
nmap </d><d -0> g^
 
"add some line space for easy reading
set linespace=4
 
"disable visual bell
set visualbell t_vb=
 
"try to make possible to navigate within lines of wrapped lines
nmap <down> gj
nmap <up> gk
set fo=l
 
"statusline setup
set statusline=%f       "tail of the filename
</up></down></d>

Схожі дописи:

  1. Kubuntu Jaunty Linux і тайм-менджмент

3 Responses

  1. mr.psiho says:

    Дивно, а мене зовсім не просили ні про які скани паспорта. При чому про відмінусування податку я написав одразу)
    Теж тримаю VQ 12 і ще й VQ 7 ось уже три місяці. Всім задоволений.

    • G3D says:

      А ти давно у них зареєстрований? Які дані вказані?
      Я так зрозумів ця фішка зі сканом паспорту для то нових клієнтів, чи то для народу із пост СРСР. Власне, на Хабрахабрі ця інформація пробігала задовго до моєї реєстрації в них.

      Ну і чому VQ7 і VQ 12? Є якась стратегія чи просто „так вийшло“?

      • mr.psiho says:

        Оффтоп: наче й підписувався, але повідомлення про новий коментар не прийшло((

        Зареєстрований із липня цього року. Дані вказав.. от не пам'ятаю, блін.. але скан паспорта точно НЕ просили надсилати.
        І ще прикол з оплатою. Вони ж стягують гроші у перший тиждень кожного місяця. Але я не завжди пам'ятаю, що картку треба розблокувати для транзакцій. І от деколи 5 разів, щодня, намагаються зняти, а банк їм відмовляє))) Але нічого, претензій не виставляють))

        А із серверами – так вийшло. Спочатку менший брав, на пробу. Але все виявилось супер пупер і для потужніших проектів взяв ще один. :)

XHTML дозволено: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">