{"id":18622534,"url":"https://github.com/mindreframer/hetzner-setup","last_synced_at":"2026-01-22T05:34:11.537Z","repository":{"id":8094197,"uuid":"9508572","full_name":"mindreframer/hetzner-setup","owner":"mindreframer","description":"Инструкция по настройке проекта на сервере Hetzner","archived":false,"fork":false,"pushed_at":"2013-02-04T09:40:50.000Z","size":68,"stargazers_count":2,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-13T14:35:24.448Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mindreframer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-04-17T22:09:00.000Z","updated_at":"2022-07-20T12:42:08.000Z","dependencies_parsed_at":"2022-07-17T14:47:05.340Z","dependency_job_id":null,"html_url":"https://github.com/mindreframer/hetzner-setup","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mindreframer/hetzner-setup","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mindreframer%2Fhetzner-setup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mindreframer%2Fhetzner-setup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mindreframer%2Fhetzner-setup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mindreframer%2Fhetzner-setup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mindreframer","download_url":"https://codeload.github.com/mindreframer/hetzner-setup/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mindreframer%2Fhetzner-setup/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28656300,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T01:17:37.254Z","status":"online","status_checked_at":"2026-01-22T02:00:07.137Z","response_time":144,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T04:17:31.559Z","updated_at":"2026-01-22T05:34:11.520Z","avatar_url":"https://github.com/mindreframer.png","language":null,"readme":"# Инструкция по настройке проекта на сервере Hetzner\n\n## Переустановка сервера\n\nКупив сервер у Hetzner, на нем необходимо переустановить систему для изменения\nнастроек разбивки дисков.\n\nВ [панели управления серверами][panel], в разделе [Servers][servers]\nнайдите ваш сервер. Во вкладке `IPs` сервера запоните первый адрес.\nДопустим этим адресом является `144.76.8.196`.\n\nВо вкладке `Rescue` активируйте 64-битную систему восстановления и запомните\nпароль выданный после активации.\n\nВо вкладке `Reset` выполните `Execute a automatic hardware reset`.\n\nЧерез некоторое время сервер перезагрузится со системой востановления.\nПрисоеденитесь к серверу через ssh используя записаный ранее пароль.\n\n```\n$ ssh root@144.76.8.196\n```\n\nЗапустите процесс переустановки системы:\n\n```\nroot@rescue ~ # installimage\n```\n\nВыберите систему `Ubuntu`. Выберите версию `Ubuntu-1204-precise-64-minimal`.\nПосле предупреждения откроется редактор с настройкой процесса установки.\nВ этом файле удалите следующие строчки:\n\n```\nHOSTNAME Ubuntu-1204-precise-64-minimal\nPART swap swap 16G\nPART /boot ext3 512M\nPART / ext4 1024G\nPART /home ext4 all\n```\n\nСтрочки можно удалять используя клавишу `F8`. Вместо удаленных строчек впишите\nследующие:\n\n```\nHOSTNAME host0.skveez.net\nPART /boot ext2 512M\nPART lvm sysvg 36G\nPART lvm virvg all\nLV sysvg root / ext3 32G\nLV sysvg swap swap swap all\n```\n\nСохраните настройки используя клавишу `F10`. Дважды согласитесь\nс предупреждением. После этого начнется установка:\n\n```\n\n                Hetzner Online AG - installimage\n\n  Your server will be installed now, this will take some minutes\n             You can abort at any time with CTRL+C ...\n\n         :  Reading configuration                           done \n   1/15  :  Deleting partitions                             done \n   2/15  :  Test partition size                             done \n   3/15  :  Creating partitions and /etc/fstab              done \n   4/15  :  Creating software RAID level 1                  done \n   5/15  :  Creating LVM volumes                            busy   No volume groups found\n                                                            done \n   6/15  :  Formatting partitions\n         :    formatting /dev/md/0 with ext2                done \n         :    formatting /dev/sysvg/root with ext3          done \n         :    formatting /dev/sysvg/swap with swap          done \n   7/15  :  Mounting partitions                             done \n   8/15  :  Extracting image (local)                        done \n   9/15  :  Setting up network for eth0                     done \n  10/15  :  Executing additional commands\n         :    Generating new SSH keys                       done \n         :    Generating mdadm config                       done \n         :    Generating ramdisk                            done \n         :    Generating ntp config                         done \n         :    Setting hostname                              done \n  11/15  :  Setting up miscellaneous files                  done \n  12/15  :  Setting root password                           done \n  13/15  :  Installing bootloader grub                      done \n  14/15  :  Running some ubuntu specific functions          done \n  15/15  :  Clearing log files                              done \n\n                  INSTALLATION COMPLETE\n   You can now reboot and log in to your new system with\n  the same password as you logged in to the rescue system.\n\n```\n\nПерезагрузите сервер:\n\n```\nroot@rescue ~ # reboot\n```\n\nПосле перезагрузки сервер будет с нужной версией ОС и правильной разбивкой\nдисков.\n\n[panel]: https://robot.your-server.de\n[servers]: https://robot.your-server.de/server\n\n## Создание пользователя\n\nЕсли вы используете Linux или OS X, то удалите запись о сервере из файла\n`~/.ssh/known_hosts`. Запись начинается примерно так:\n\n`144.76.8.196 ssh-rsa AAAAB3NzaC1yc2EAAAA`.\n\nПрисоеденитесь к серверу:\n\n```\n$ ssh root@144.76.8.196\n```\n\nСоздайте своего пользователя, например `vyacheslav`, задайте ему пароль\nи сделайте его администратором системы:\n\n```\nroot@host0 ~ # useradd -ms /bin/bash vyacheslav\nroot@host0 ~ # passwd vyacheslav\nroot@host0 ~ # adduser vyacheslav admin\n```\n\nУдалите пароль пользователя `root` и отключитесь от сервера.\n\n```\nroot@host0 ~ # passwd -d root\nroot@host0 ~ # exit\n```\n\n## Настройка виртуализации\n\nПрисоеденитесь к серверу под созданным пользователем:\n\n```\n$ ssh 144.76.8.196\n```\n\nОбновите систему и установите необходимые пакеты:\n\n```\nvyacheslav@host0:~$ sudo aptitude update\nvyacheslav@host0:~$ sudo aptitude upgrade -y\nvyacheslav@host0:~$ sudo aptitude install -y qemu-kvm libvirt-bin\n```\n\nРазрешите своему пользователю управлять настройками виртуализации:\n\n```\nvyacheslav@host0:~$ sudo adduser vyacheslav libvirtd\n```\n\nВключите ip forwarding:\n\n```\nvyacheslav@host0:~$ echo net.ipv4.ip_forward=1 | sudo tee -a /etc/sysctl.conf\nvyacheslav@host0:~$ echo net.ipv6.conf.all.proxy_ndp=1 | sudo tee -a /etc/sysctl.conf\nvyacheslav@host0:~$ sudo sysctl -p\n```\n\n\u003c!-- В панели управления серверами, в разделе `Servers`, во вкладке `IPs` узнайте\nвторой IP адрес вашего сервера. Если его нет, докупите его.\n\nДопустим у нас есть следующие адреса для IPv4:\n\n* `144.76.8.196` — адрес машины;\n* `144.76.8.220` — дополнительный адрес;\n* `255.255.255.224` — маска подсети.\n\nТогда выполните следующие комманды для настройки сети:\n\n```\nvyacheslav@host0:~$ virsh net-destroy default\nvyacheslav@host0:~$ virsh net-undefine default\nvyacheslav@host0:~$ cat \u003c\u003c END | sudo tee /etc/libvirt/qemu/networks/default.xml\n\u003cnetwork\u003e\n  \u003cname\u003edefault\u003c/name\u003e\n  \u003cforward/\u003e\n  \u003cbridge name=\"virbr0\"/\u003e\n  \u003cip address=\"192.168.122.1\" netmask=\"255.255.255.0\"\u003e\n    \u003cdhcp\u003e\n      \u003crange start=\"192.168.122.10\" end=\"192.168.122.99\" /\u003e\n      \u003chost mac=\"52:54:00:f3:07:10\" name=\"chef0.skveez.net\" ip=\"192.168.122.10\" /\u003e\n      \u003chost mac=\"52:54:00:f3:07:20\" name=\"application0.skveez.net\" ip=\"192.168.122.20\" /\u003e\n      \u003chost mac=\"52:54:00:f3:07:30\" name=\"database0.skveez.net\" ip=\"192.168.122.30\" /\u003e\n      \u003chost mac=\"52:54:00:f3:07:40\" name=\"session0.skveez.net\" ip=\"192.168.122.40\" /\u003e\n      \u003chost mac=\"52:54:00:f3:07:50\" name=\"balancer0\".skveez.net ip=\"192.168.122.50\" /\u003e\n    \u003c/dhcp\u003e\n  \u003c/ip\u003e\n\u003c/network\u003e\nEND\nvyacheslav@host0:~$ cat \u003c\u003c END | sudo tee /etc/libvirt/qemu/networks/hetzner.xml\n\u003cnetwork\u003e\n  \u003cname\u003ehetzner\u003c/name\u003e\n  \u003cbridge name=\"virbr1\"/\u003e\n  \u003cforward mode=\"route\" dev=\"eth0\"/\u003e\n  \u003cip address=\"144.76.8.196\" netmask=\"255.255.255.224\"\u003e\n    \u003cdhcp\u003e\n      \u003chost mac=\"52:54:00:f3:07:50\" name=\"balancer0\" ip=\"144.76.8.220\" /\u003e\n    \u003c/dhcp\u003e\n  \u003c/ip\u003e\n\u003c/network\u003e\nEND\nvyacheslav@host0:~$ virsh net-define /etc/libvirt/qemu/networks/default.xml\nvyacheslav@host0:~$ virsh net-define /etc/libvirt/qemu/networks/hetzner.xml\nvyacheslav@host0:~$ virsh net-autostart default\nvyacheslav@host0:~$ virsh net-autostart hetzner\n``` --\u003e\n\nСкачайте образ установочного диска для последующих установок гостевых систем:\n\n```\nvyacheslav@host0:~$ sudo mkdir /var/iso\nvyacheslav@host0:~$ cd /var/iso\nvyacheslav@host0:/var/iso$ sudo wget --trust-server-names \"http://www.ubuntu.com/start-download?distro=server\u0026bits=64\u0026release=lts\"\nvyacheslav@host0:/var/iso$ cd\n```\n\nПерезагрузите систему для применения всех настроек:\n\n```\nvyacheslav@host0:~$ sudo reboot\n```\n\n## Установка гостевой системы\n\nВ первую очередь необходимо устанавить гостевую систему для Chef.\n\nСоздайте диск:\n\n```\nvyacheslav@host0:~$ sudo lvcreate -L 8G -n chef0-root virvg\nvyacheslav@host0:~$ sudo lvcreate -L 1G -n chef0-swap virvg\n```\n\nВыполните следующие комманды для настройки гостевой ситемы:\n\n```\nvyacheslav@host0:~$ ISO=$(ls /var/iso/ubuntu*)\nvyacheslav@host0:~$ cat \u003c\u003c END | sudo tee /etc/libvirt/qemu/chef0.xml\n\u003cdomain type=\"kvm\"\u003e\n  \u003cname\u003echef0\u003c/name\u003e\n  \u003cmemory\u003e786432\u003c/memory\u003e\n  \u003cos\u003e\n    \u003ctype\u003ehvm\u003c/type\u003e\n  \u003c/os\u003e\n  \u003cfeatures\u003e\n    \u003cacpi/\u003e\n  \u003c/features\u003e\n  \u003cdevices\u003e\n    \u003cdisk type=\"block\" device=\"disk\"\u003e\n      \u003csource dev=\"/dev/virvg/chef0-root\"/\u003e\n      \u003ctarget dev=\"vda\"/\u003e\n      \u003cboot order=\"1\"/\u003e\n    \u003c/disk\u003e\n    \u003cdisk type=\"block\" device=\"disk\"\u003e\n      \u003csource dev=\"/dev/virvg/chef0-swap\"/\u003e\n      \u003ctarget dev=\"vdb\"/\u003e\n    \u003c/disk\u003e\n    \u003cdisk type=\"file\" device=\"cdrom\"\u003e\n      \u003csource file=\"$ISO\"/\u003e\n      \u003ctarget dev='hda'/\u003e\n      \u003cboot order=\"2\"/\u003e\n      \u003creadonly/\u003e\n    \u003c/disk\u003e\n    \u003cinterface type=\"network\"\u003e\n      \u003cmac address='52:54:00:f3:07:10'/\u003e\n      \u003csource network=\"default\"/\u003e\n    \u003c/interface\u003e\n    \u003cgraphics type=\"vnc\" port=\"5910\" listen=\"127.0.0.1\"/\u003e\n  \u003c/devices\u003e\n\u003c/domain\u003e\nEND\nvyacheslav@host0:~$ virsh define /etc/libvirt/qemu/chef0.xml\nvyacheslav@host0:~$ virsh autostart chef0\n```\n\nДля создания тунелля к VNC гостевой системы выполните следующие комманды:\n\n```\nvyacheslav@host0:~$ exit\n$ ssh 144.76.8.196 -L 5910:127.0.0.1:5910\n```\n\nПодключитесь через ваш VNC клиент к адресу 127.0.0.1:5910 и вы увидите\nстандартный процесс установки Ubuntu Server. Выполните установку системы\nпо вашему усмотрению. Не забудьте отметить `OpenSSH server` во время установки.\n\nПо аналогии устанавливаются и остальные гостевые системы. Настройки для каждой\nиз необходимых систем приведены [ниже](#chef0).\n\n## Настройка Сhef\n\nПрисоеденитесь к гостевой системе chef0:\n\n```\nvyacheslav@host0:~$ ssh chef0\n```\n\nДобавьте репозиторий Opscode:\n\n```\nvyacheslav@chef0:~$ echo \"deb http://apt.opscode.com/ `lsb_release -cs`-0.10 main\" | sudo tee /etc/apt/sources.list.d/opscode.list\nvyacheslav@chef0:~$ gpg --keyserver keys.gnupg.net --recv-keys 83EF826A\nvyacheslav@chef0:~$ gpg --export packages@opscode.com | sudo tee /etc/apt/trusted.gpg.d/opscode-keyring.gpg \u003e /dev/null\nvyacheslav@chef0:~$ sudo aptitude update\nvyacheslav@chef0:~$ sudo aptitude install opscode-keyring\n```\n\nОбновите систему и выполните перезагрузку:\n\n```\nvyacheslav@chef0:~$ sudo aptitude upgrade\nvyacheslav@chef0:~$ sudo reboot\n```\n\nПосле перезагрузки заново присоеденитесь к системе:\n\n```\nvyacheslav@host0:~$ ssh chef0\n```\n\nУстановите Chef:\n\n```\nvyacheslav@chef0:~$ sudo aptitude install chef chef-server-api chef-expander\n```\n\nВо время установки вас спросят адрес сервера Chef, введите\n`http://chef0.skveez.net:4000`. Пароль для AMPQ введите произвольный.\n\nНастройте Knife:\n\n```\nvyacheslav@chef0:~$ mkdir -p ~/.chef\nvyacheslav@chef0:~$ sudo cp /etc/chef/validation.pem /etc/chef/webui.pem ~/.chef\nvyacheslav@chef0:~$ sudo chown -R vyacheslav ~/.chef\nvyacheslav@chef0:~$ knife configure --initial \\\n  --defaults \\\n  --server-url http://chef0.skveez.net:4000 \\\n  --admin-client-key ~/.chef/webui.pem \\\n  --validation-key ~/.chef/validation.pem \\\n  --repository \"\"\nvyacheslav@chef0:~$ rm ~/.chef/webui.pem\n```\n\n\n_**TODO:** проверить /etc/hosts на database0 database0.skveez.net_\n\n## Конфигурации гостевых систем\n\n### chef0\n\n```\nvyacheslav@host0:~$ sudo lvcreate -L 8G -n chef0-root virvg\nvyacheslav@host0:~$ sudo lvcreate -L 1G -n chef0-swap virvg\nvyacheslav@host0:~$ ISO=$(ls /var/iso/ubuntu*)\nvyacheslav@host0:~$ cat \u003c\u003c END | sudo tee /etc/libvirt/qemu/chef0.xml\n\u003cdomain type=\"kvm\"\u003e\n  \u003cname\u003echef0\u003c/name\u003e\n  \u003cmemory\u003e786432\u003c/memory\u003e\n  \u003cos\u003e\n    \u003ctype\u003ehvm\u003c/type\u003e\n  \u003c/os\u003e\n  \u003cfeatures\u003e\n    \u003cacpi/\u003e\n  \u003c/features\u003e\n  \u003cdevices\u003e\n    \u003cdisk type=\"block\" device=\"disk\"\u003e\n      \u003csource dev=\"/dev/virvg/chef0-root\"/\u003e\n      \u003ctarget dev=\"vda\"/\u003e\n      \u003cboot order=\"1\"/\u003e\n    \u003c/disk\u003e\n    \u003cdisk type=\"block\" device=\"disk\"\u003e\n      \u003csource dev=\"/dev/virvg/chef0-swap\"/\u003e\n      \u003ctarget dev=\"vdb\"/\u003e\n    \u003c/disk\u003e\n    \u003cdisk type=\"file\" device=\"cdrom\"\u003e\n      \u003csource file=\"$ISO\"/\u003e\n      \u003ctarget dev='hda'/\u003e\n      \u003cboot order=\"2\"/\u003e\n      \u003creadonly/\u003e\n    \u003c/disk\u003e\n    \u003cinterface type=\"network\"\u003e\n      \u003cmac address='52:54:00:f3:07:10'/\u003e\n      \u003csource network=\"default\"/\u003e\n    \u003c/interface\u003e\n    \u003cgraphics type=\"vnc\" port=\"5910\" listen=\"127.0.0.1\"/\u003e\n  \u003c/devices\u003e\n\u003c/domain\u003e\nEND\nvyacheslav@host0:~$ virsh define /etc/libvirt/qemu/chef0.xml\nvyacheslav@host0:~$ virsh autostart chef0\n```\n\n### application0\n\n```\nvyacheslav@host0:~$ sudo lvcreate -L 16G -n application0-root virvg\nvyacheslav@host0:~$ sudo lvcreate -L 2G -n application0-swap virvg\nvyacheslav@host0:~$ ISO=$(ls /var/iso/ubuntu*)\nvyacheslav@host0:~$ cat \u003c\u003c END | sudo tee /etc/libvirt/qemu/application0.xml\n\u003cdomain type=\"kvm\"\u003e\n  \u003cname\u003eapplication0\u003c/name\u003e\n  \u003cmemory\u003e2097152\u003c/memory\u003e\n  \u003cos\u003e\n    \u003ctype\u003ehvm\u003c/type\u003e\n  \u003c/os\u003e\n  \u003cfeatures\u003e\n    \u003cacpi/\u003e\n  \u003c/features\u003e\n  \u003cdevices\u003e\n    \u003cdisk type=\"block\" device=\"disk\"\u003e\n      \u003csource dev=\"/dev/virvg/application0-root\"/\u003e\n      \u003ctarget dev=\"vda\"/\u003e\n      \u003cboot order=\"1\"/\u003e\n    \u003c/disk\u003e\n    \u003cdisk type=\"block\" device=\"disk\"\u003e\n      \u003csource dev=\"/dev/virvg/application0-swap\"/\u003e\n      \u003ctarget dev=\"vdb\"/\u003e\n    \u003c/disk\u003e\n    \u003cdisk type=\"file\" device=\"cdrom\"\u003e\n      \u003csource file=\"$ISO\"/\u003e\n      \u003ctarget dev='hda'/\u003e\n      \u003cboot order=\"2\"/\u003e\n      \u003creadonly/\u003e\n    \u003c/disk\u003e\n    \u003cinterface type=\"network\"\u003e\n      \u003cmac address='52:54:00:f3:07:20'/\u003e\n      \u003csource network=\"default\"/\u003e\n    \u003c/interface\u003e\n    \u003cgraphics type=\"vnc\" port=\"5920\" listen=\"127.0.0.1\"/\u003e\n  \u003c/devices\u003e\n\u003c/domain\u003e\nEND\nvyacheslav@host0:~$ virsh define /etc/libvirt/qemu/application0.xml\nvyacheslav@host0:~$ virsh autostart application0\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmindreframer%2Fhetzner-setup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmindreframer%2Fhetzner-setup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmindreframer%2Fhetzner-setup/lists"}