LINUX.ORG.RU
ФорумAdmin

Автоматическое развертывание Gentoo с свежего stage3

 ,


1

3

Привет, ЛОР!

Ищу советы о том, как лучше всего сделать автоматическое развёртывание Gentoo с свежего stage3.

Пока вырисовывается такой скрипт:

#!/bin/bash
source config
set -x #echo on

mkdir -p $GI_CHROOT || exit 1
cd $GI_CHROOT || exit 1

set +x

# DOWNLOAD STAGE

STAGE3=$(wget -qO - http://distfiles.gentoo.org/releases/$GI_ARCH/autobuilds/latest-stage3-$GI_ARCH-hardened.txt | grep -v '#')
echo -e "\e[1;34mLatest stage3: \e[00;31m$STAGE3\e[00m"

ARCHIVE_NAME=`echo $STAGE3 | grep -oP "stage3.*"`

wget -vc "http://distfiles.gentoo.org/releases/$GI_ARCH/autobuilds/$STAGE3" -O $GI_CHROOT/$ARCHIVE_NAME
wget -vc "http://distfiles.gentoo.org/releases/$GI_ARCH/autobuilds/$STAGE3.DIGESTS" -O $GI_CHROOT/$ARCHIVE_NAME.DIGESTS
wget -vc "http://distfiles.gentoo.org/releases/$GI_ARCH/autobuilds/$STAGE3.CONTENTS" -O $GI_CHROOT/$ARCHIVE_NAME.CONTENTS


# CHECK FILES
echo -e "\e[1;34mCHECK FILES SHA512\e[00m"
grep -A 1 SHA512 $GI_CHROOT/$ARCHIVE_NAME.DIGESTS | grep "stage3" | sha512sum -c - || exit 1


# UNPACK
echo -e "\e[1;34mUNPACK STAGE3\e[00m"
tar --checkpoint=10000 -xjpf $ARCHIVE_NAME || exit 1

# COPY FILES

set -x
cp -L /etc/resolv.conf $GI_CHROOT/etc/resolv.conf || exit 1

# MOUNT
mount -t proc none $GI_CHROOT/proc || exit 1
mount --rbind /dev $GI_CHROOT/dev || exit 1
mount --rbind /sys $GI_CHROOT/sys || exit 1

Далее идет уже стадия chroot

#!/bin/bash
emerge-webrsync || exit 1
emerge --sync || exit 1

ln -sf /proc/self/mounts /etc/mtab
euse -E systemd
emerge -avuDN world

Вот, собственно, вопрос - а как лучше устанавливать пакеты скриптами ещё до получения загружаемой системы, в chroot?

Потому что далее я планирую управлять пакетами через puppet и puppet-portage, но до этого момента всё же надо установить несколько жизненно важных пакетов.

Как вы автоматически разворачиваете Gentoo?

P.S. Я знаю, что в случае большого количества компов следует использовать BINHOST и buildpkg в эталонном chroot или на отдельной машинке.

Отдельно хочу скастовать в тред Pinkbyte и tazhate.

Спасибо.

Есть ведь уже написанные скрипты, загугли, а? Или велосипед принципиален?

Lilly
()

автоматическое развёртывание Gentoo

но зачем?

если есть зоопарк одинаковых машин - легче построить на одной из них и тупо размножить содержимое винта на остальные. если машины разные - то со спецификой железа каждой тебе предстоит потрахаться отдельно.

jcd ★★★★★
()

Если я правильно понял man, то при установке с Gentoo minimal CD или чего-то ещё, где в хостовой системе будет портаж, для emerge должна задаваться корневая система для установки пакетов(и ебилдов, как сказал всё тот же ман).

То есть а-ля

 
echo "Installing packages to /mnt"                                
if ! emerge --root=/mnt "${emerge_args[@]}"; then
   echo 'Failed to install packages to new root' && exit 1
fi
А этот самый emerge_args брать уже как душе будет угодно, из файла, как список аргументов, без разницы.

raven_cler ★★
()
Последнее исправление: raven_cler (всего исправлений: 2)
Ответ на: комментарий от jcd

если машины разные - то со спецификой железа каждой тебе предстоит потрахаться отдельно

с фига ли? достаточно модифицировать скрипт так, чтобы он подставлял специфические поля в make.conf из некоторого конфига, а там уже просто в конфиг прописываешь проц и видеокарту, этого достаточно

anonymous
()

а как лучше устанавливать пакеты скриптами ещё до получения загружаемой системы, в chroot?

ROOT=/path/to/chroot PORTAGE_CONFIGROOT=/path/to/chroot emerge package

emerge должен стоять в хостовой системе. На SystemRescueCD он есть, например.

А вообще catalyst, да.

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от anonymous

да если бы - не забудь потрахаться с конпеляцией дров и близлежащих пакетов, которые вдруг не захотят собираться из-за какой-нибудь ерунды. если бы не это - всю генту можно было бы автоматизировать по самое нехочу

jcd ★★★★★
()
Ответ на: комментарий от Pinkbyte

А скажи пожалуйста, разве при использовании catalyst не надо делать свой stage1/2/3?

Могу ли я использовать catalyst с готовым stage3?

anonymous9
() автор топика
Ответ на: комментарий от jcd

Зоопарк есть, но это позже.

Сейчас задача стоит в автоматизации развёртывания «с нуля» для 3-х серверов, которые не похожи между собой.

anonymous9
() автор топика
Ответ на: комментарий от Deleted

Зря ты это запостил

Наоборот, я думаю, что обращение к коллективному разуму принесет больше результатов, чем попытки всё сделать в одиночку.

anonymous9
() автор топика

Я в какой-то момент думал об автоматизации разворачивания генты, а потом понял, что я изобретаю велосипеды. Для автоматического разворачивания есть другие дистры, а гента подразумевает слишком много случаев, которые автоматизацией трудно покрыть.

devsdc ★★
()

Товарищи, ну научите меня, непутевого, чтобы я не создавал темы вроде раз, два, три, четыре, пять, шесть, семь, восемь, девять, десять… Как с гентой жЫть?

Прежде всего волнует — где почитать нормальный внятный мануал на человеческом языке, который на пальцах разъясняет, как работать с ебилдами: от самых азов (т.е. функции, которые в ебилдах используются и т.п.) с примерами.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

где почитать нормальный внятный мануал на человеческом языке, который на пальцах разъясняет, как работать с ебилдами: от самых азов (т.е. функции, которые в ебилдах используются и т.п.) с примерами.

http://devmanual.gentoo.org

Если человеческий язык для тебя предполагает русский - тады ой

Update: проглядел, уже посоветовали

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Благодарю за ответ! Придётся смотреть на другие инструменты.

Ещё вопрос, как участнику комманды Gentoo, - а планируются ли подобные фичи? Для автоматизации установки? Что-то вроде preseed-файлов в Debian, где описываются ответы на вопросы инсталлера (что можно заменить командами редактирования конфигов на bash), и, что очень важно, список пакетов для установки?

Да, это можно самому написать в bash-скрипте, но получается куча решений, и ни одно не поддерживается апстримом.

anonymous9
() автор топика
Ответ на: комментарий от anonymous9

а планируются ли подобные фичи?

В Catalyst - нет. Catalyst - это утилита, которой мы еженедельно собираем стейджи с нуля(autobuilds).

Для автоматизации установки?

Gentoo - это метадистрибутив. Каждый сам решает что ему нужно автоматизировать. Серебряной пули у нас нет.

Что-то вроде preseed-файлов в Debian, где описываются ответы на вопросы инсталлера (что можно заменить командами редактирования конфигов на bash), и, что очень важно, список пакетов для установки?

С такими требованиями проще заюзать Catalyst, чесслово.

Да, это можно самому написать в bash-скрипте, но получается куча решений, и ни одно не поддерживается апстримом.

Потому что мы предоставляем базу, а на ней каждый волен пилить всё что ему заблагорассудится.

Если тебе нужна автоматизированная установка с поддержкой - смотри на форки Gentoo(Sabayon, Calculate).

Gentoo часто ставится в таких условиях, где автоматизировать установку либо не представляется возможным, либо это требует таких усилий при таком малом количестве пользователей, что это того не стоит.

Pinkbyte ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.