Як створити індивідуальний сервер Ubuntu Server?


42

Я хотів би створити налаштований Ubuntu Server 12.04 ISO, але не зміг знайти чіткого підходу, як це зробити. Я бачу, що Ubuntu-builder - це дуже хороший додаток для створення персоналізованого робочого столу Ubuntu, але що з сервером Ubuntu?

Відповіді:


61

Завантажити

Завантажте ISO-сервер Ubuntu з цього місця . У вас є можливість перейти на 32-бітну або 64-бітну версію. Назва файлу для серверного видання буде схожим на таке:

ubuntu-13.10-server-i386.iso 
ubuntu-13.10-server-amd64.iso 

Я припускаю 13.10 64-розрядну версію в наступних інструкціях, тому налаштуйте команди на завантаження, яке ви зробили. Зберігайте копію завантаження, щоб ви могли створити кілька нових версій з оригінального завантаження, якщо вам потрібно буде покращити проект. Я також припускаю, що ми використовуємо ~/Downloads/для виконання всієї своєї роботи.

Початкові налаштування

Це створить 2 каталоги "iso" та "isoNew" всередині вашої каталог завантажень, встановить ISO та скопіює вміст з "iso" на "isoNew", щоб розпочати новий проект.

Помістіть це у текстовий файл, збережіть його, зробіть його виконуваним та виконайте:

# Ubuntu custom server 
# rinzwind askubuntu.com
# topic: http://askubuntu.com/questions/409607/how-to-create-a-customized-ubuntu-server-iso/409651#409651
cd ~/Downloads/    
mkdir -p iso newIso
sudo mount -o loop ./ubuntu-13.10-server-amd64.iso ./iso    
sudo cp -r ./iso/* ./newIso/
sudo cp -r ./iso/.disk/ ./newIso/    
sudo umount ./iso/
cd ~/Downloads/newIso/
  • Він видасть 1 повідомлення про помилку: mount: block device /discworld/Downloads/ubuntu-13.10-server-amd64.iso is write-protected, mounting read-only

Приклади зображень про те, як це буде виглядати:

Виконання:

Виконання

Результат:

Результат

Додавання опції меню завантаження

Параметри меню для інсталятора зберігаються в isolinux/txt.cfgі ви можете створювати нові параметри між default installі label install.

Це створить нову опцію під назвою "Встановити користувальницький сервер Ubuntu" і додасть файл kickstart (файл kickstart використовується для зміни параметрів; пояснено нижче):

label myownoption
  menu label ^Install Custom Ubuntu Server
  kernel /install/vmlinuz
  append  file=/cdrom/preseed/ubuntu-custom.seed initrd=/install/initrd.gz quiet ks=cdrom:/preseed/ks-custom.cfg --
  • myownoption це лише мітка, яку ви можете використовувати для визначення свого варіанту.
  • "Встановити користувальницький сервер Ubuntu" - це текст, який з’явиться в меню завантаження.
  • Якщо ви хочете зробити меню свого меню типовим, вам потрібно лише змінити default installна default myownoption.

Приклад:

введіть тут опис зображення

та редагування файлу (я використовував nano, але якщо є, використовуйте gedit, vim чи інший редактор). Ось моє доповнення до цього файлу, де я використовував "lampserver" як мітку, і моє насіння також буде названо "lampserver".

введіть тут опис зображення

Kickstart (графічно налаштування файлу конфігурації)

Метод установки Red Hat Kickstart використовується в основному (але не виключно) операційною системою Red Hat Enterprise Linux для автоматичного виконання без нагляду встановлення та налаштування операційної системи.

Документація про попередню підготовку / старт для Ubuntu . Ubuntu має обмежену підтримку для швидкого запуску (та попередньої підготовки); одна з пропущених речей - це графічний інтерфейс для попередньої підготовки. Kickstart робить є варіанти для цього (див зображення) , але вони , здається , не працювати на Ubuntu. Це можна зробити вручну (див. Попереднє подання нижче).

Установка та запуск стартового кроку:

sudo apt-get install system-config-kickstart
ksconfig

** УВАГА **

kickstart помилка в Ubuntu 13.10, і при запуску він виходить з помилки. Ось виправлення . Помістіть патч у коментарі до текстового файлу, збережіть його (я назвав його "патчем") і виконайте його:

введіть тут опис зображення

Після цього ksconfigзапрацював і він запустить редактор конфігурації, який дозволяє вам маніпулювати безліччю варіантів.

введіть тут опис зображення

введіть тут опис зображення

Дивіться Red Hat Linux 7.2: Офіційний посібник з налаштування Red Hat Linux для опису всіх параметрів, які ви можете встановити.

Після завершення збережіть зміни у ks.cfgфайлі та скопіюйте його в ISO, який ми змінюємо:

sudo cp ks.cfg ~/Downloads/newIso/preseed/ks-custom.cfg
  • Якщо ви щось зміните тут, інсталятор буде SKIP запитувати цю інформацію, якщо вона вважається дійсною. Якщо ви не змінили параметр, інсталятор все одно попросить вас відповісти.
  • Ви також можете завантажити файли kickstart і зберегти їх як ks-custom.cfgу ~/Downloads/newIso/preseed/.

Приклад, де я вставив свої облікові дані. Я почав це з sudo ksconfigкомандного рядка.

введіть тут опис зображення

І зберегти його до проекту:

введіть тут опис зображення

Попередня підготовка (налаштування файлу конфігурації вручну)

Попередня подача надає спосіб встановити відповіді на запитання, задані під час встановлення, без необхідності вводити відповіді вручну під час роботи інсталяції. Це дає можливість повністю автоматизувати більшість типів установки та навіть пропонує деякі функції, недоступні під час звичайних установок.

Скопіюйте попередньо попередню установку для звичайної установки на власну мітку:

sudo cp newIso/preseed/ubuntu-server.seed newIso/preseed/ubuntu-myownoption.seed
  • змінити те, myownoptionщо ти використовував.

Тепер про зміну налаштувань. За допомогою debconf-get-selectionsпрограми debconf-utilsви можете дослідити, які параметри можна використовувати для конкретного програмного забезпечення.

Приклад налаштування:

введіть тут опис зображення

І додавання лампи-сервера для встановлення з tasksel:

введіть тут опис зображення

  • Якщо ви хочете додати пакети "openssh" та "build-істотно", ви можете включити це у насіннєвий файл:

    d-i pkgsel/include string openssh-server build-essential
    
  • Приклад для openssh:

    debconf-get-selections | grep openssh
    openssh-server  ssh/vulnerable_host_keys    note
    openssh-server  ssh/use_old_init_script boolean true
    openssh-server  ssh/encrypted_host_key_but_no_keygen    note
    openssh-server  ssh/disable_cr_auth boolean false
    
  • Ви можете додати ці параметри до custom-iso/preseed/ubuntu-myownoption.seed.

  • Пояснення / приклади з використанням параметрів debconf .
  • Приклад попередньо встановленого файлу
  • Приклади щодо: Локалізація, Конфігурація мережі, Мережна консоль, Годинник та час, розділення
  • В кінці попередньо встановленого файлу ви можете додати такі пакунки (випадкові приклади):

    % пакети openssh-сервер mysql-сервер apache2

Автономна установка

У випадку, якщо ви додасте пакети, а таких НЕ в ISO, інсталятор завантажить їх із сховища. Якщо у вас немає активного підключення до Інтернету, це буде проблематично, тому вам потрібно буде додати всі ці пакети (та залежності) до свого проекту та записати їх на DVD. На щастя, у звичайного сервера ISO є багато місця, але будьте обережні: CD та / або DVD мають обмежений розмір.

Завантажте всі необхідні пакети DEB і зберігайте їх ~/Downloads/. Ці два каталоги потрібні для нового ISO:

mkdir -p ~/Downloads/newIso/dists/stable/extras/binary-i386
mkdir -p ~/Downloads/newIso/pool/extras/
sudo cp ~/Downloads/*.deb newIso/pool/extras/

І це оновить наш проект новими пакетами:

cd ~/Downloads/newIso
sudo apt-ftparchive packages ./pool/extras/ > dists/stable/extras/binary-i386/Packages
sudo gzip -c ./dists/stable/extras/binary-i386/Packages | tee ./dists/stable/extras/binary-i386/Packages.gz > /dev/null
cd ~/Downloads/

Створіть ISO

cd ~/Downloads/     
sudo md5sum `find ! -name “md5sum.txt” ! -path “./isolinux/*” -follow -type f` > md5sum.txt
sudo mkisofs -J -l -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -z -iso-level 4 -c isolinux/isolinux.cat -o ./ubuntu-13.10-myowninstall-amd64.iso -joliet-long newIso/
  • 2-й рядок створює нову контрольну суму і потрібен лише при додаванні пакетів.
  • третій робить ISO з вашого проекту, який ви можете записати на DVD.

Результат:

введіть тут опис зображення

А тепер ви можете спробувати його, фактично записуючи та встановлюючи. Я б радив використовувати як віртуальну машину, оскільки це буде швидше для тестування початкового створеного ISO (інакше ви продовжуєте перезавантаження).

І після встановлення VirtualBox я отримую таке меню:

введіть тут опис зображення

Полювання на клопів

Під час встановлення виникло 1 проблема: за замовчуванням не було вибрано.

Шадін. З вашого файлу насіння в коментарі

### Package Selection
tasksel tasksel/first multiselect Custom-Ubuntu-Server
d-i pkgsel/include string openssh-server build-essential
%packages openssh-server postgresql-9.1 postgresql-client-9.1 postgresql-contrib-9.1 libpq-dev postgresql-server-dev-9.1 pgadmin3

певно, має бути таким:

### Package Selection
tasksel tasksel/first multiselect lamp-server
d-i pkgsel/include string openssh-server build-essential postgresql-9.1 postgresql-client-9.1 postgresql-contrib-9.1 libpq-dev postgresql-server-dev-9.1 pgadmin3

Викопайте рядок із завданням, який ви не хочете, щоб сервер LAMP (тобто Apache, Mysql, Php)


Чи можна це використовувати для настільних версій?
Брайам

ДУЖЕ ДЯКУЮ!! Я дійсно не можу подякувати вам за те, щоб зробити цей процес легким та рівним! У мене була просто одна проблема, після того як я встановив VirtualBox і вирішив встановити свій індивідуальний сервер, я отримав це повідомлення про помилку! Дійсний XHTML .
Шадін

Так. насправді я вважаю за краще, якщо ви подивитесь на мій файл з насінням [ megafileupload.com/en/file/493602/… Я не впевнений у тому, як я додав пакунки в кінці файлу
Шадін

ой! Дякую! Я спробую це і повернусь до вас. Також я хотів би знати, чи є який-небудь спосіб видалити будь-які додаткові сервери під час цього процесу із зображення, як-от поштовий сервер, веб-сервер, JBOSS .. і т. д. Я хочу, щоб він включав лише postgresql та його пакети.
Шадін

2
@shadin це нормально, дивіться, як це робить Лусіо ;-) Очистив коментарі. Браям: так, може. Хоча на робочому столі можна змінити набагато більше речей, це є початком (kickstart також працює, якщо ви виправляєте його, але він все ще обмежений, підтримується Ubuntu).
Rinzwind
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.