LinuxForum.Fans
Тема

Автоматизация установки и развертывания Linux систем

Автор: astronom1987 25 сообщений 9158 просмотров
#337197

Автоматизация установки и развертывания Linux систем

Новички в Linux осваивая новую систему часто не подозревают как легко и просто можно автоматизировать процесс установки и развертывания системы на большом количестве компьютеров.
Сегодня я вам расскажу как автоматизировать процесс установки и развертывания Linux систем на примере своего самого любимого дистрибутива - Mageia Linux. Итак, установив свежую систему на одному компьютере нужно произвести все нужные настройки как самой системы так и пользовательского, графического окружения. Для начала нужно усвоить как правильно ставить программы в систему. Правильно означает способ установки ПО отличный от обычного. Сначала добавляем все репозитории, которые нам необходимы для установки программ.
I — шаг
Cоздаем текстовый файл следующего содержания: urpmi название_пакета_программы —noclean
Обратите внимание, что в текстовый документ нужно вставлять не одну программу, а все множество программ, которые нужно установить. Пишем сокращенные названия пакетов без указания версии так как при переходе с одной версии дистрибутива на другую эти версии пакетов могут обновиться и старая команда установки их на компьютер может не работать. После того как программы будут отобраны не забывайте в конце строки поставить опцию «—noclean». Она позволяет сохранить закачанные пакеты в кэш откуда их можно потом будет изъять и установить на другом компьютере не перекачивая их при это всякий раз по новой. Содержимое кэша, которое находиться по адресу /var/cache/urpmi и его нужно скопировать на сменный носитель. Это можно сделать сразу после того как пакеты будут скачаны загрузчиком. После того как текстовый файл будет доделан до конца, т.е. когда будут выбраны все программы для установки следует зайти в терминал на правах рута при помощи команды «su» и дальнейшего ввода пароля вставить длинную команду в терминал. После чего следует нажать «Enter». Общий вывод: создаем текстовый файл, вставляем команду установки программ в терминал на правах рута. А потом делаем копию кэша ОС.
II - Шаг
После того как установка ПО будет окончена можно приступать к настройке графического окружения и установленных программ. Новичкам будет приятно узнать о том, что все программы хранят свои настройки в домашнем каталоге пользователя. Для того чтобы их просмотреть нужно дать команду менеджере файлов отображать скрытое содержимое. По окончанию конфигурирования программ и графического окружения все эти файлы которые начинаются с точки нужно зарезервировать в архив и сохранить на сменном носителе.
III — Шаг
Теперь когда мы садимся за другой компьютер ставим систему как обычно и после настройки интернета добавляем нужные репозитории и вставляем сменный носитель на котором у нас есть длинная команда установки пакетов и сами эти пакеты. Их то и нужно установить. Обратите внимание — важно, что имя пользователя как на первом компьютере так и на втором имена пользователей должны быть одинаковыми для того чтобы настройки былы перенесены максимально успешно и безболезненно. Как вы уже наверное поняли нужно распаковать папки и файлы начинающиеся с точки в прямо в домашний каталог в систему другого компьютера. Все, теперь вместо каждой рутинной ручной настройки среды и программы мы наслаждаемся полностью настроенным рабочим окружением!
С уважением astronom1987

#337201

Не хотелось бы вас обижать, но вы в самом деле думаете, что в таком виде «это» можно читать?

#337204

А как мне надо было изложить материал?

#337205

Хотя бы без грамматических и пунктационных ошибок, используя тэги. А так ваш материал выглядит, как «простыня» текста — его просто-напросто трудно читать.

#337207

А что, нормальных инструментов для этой цели нет? Способ интересный, простой, но это, как ни крути, костыль, да прошу меня простить. Особенно меня порадовало набирать весь список пакетов вручную и копировать длинную команду в терминал... В Slackware можно устанавливать пакеты по списку, который называется тегфайлом, и это штатная возможность менеджера пакетов. В Debian это делается с помощью dpkg get|set selections.
Поэтому крайне рекомендуется читать страницы руководств (man), литературу для системных администраторов и учебники скриптовому языку командного интерпретатора, одним из множества которых является bash, который еще и довольно широко распространен.

#337209
Lupo Alberto написал:
Хотя бы без грамматических и пунктационных ошибок, используя тэги. А так ваш материал выглядит, как «простыня» текста — его просто-напросто трудно читать.

Странно, набирал текст в LibreOffice Writer - там ошибок почти не нашла программа кроме тех слов, которых не было в словаре.

#337210
yars написал:
А что, нормальных инструментов для этой цели нет? Способ интересный, простой, но это, как ни крути, костыль, да прошу меня простить. Особенно меня порадовало набирать весь список пакетов вручную и копировать длинную команду в терминал... В Slackware можно устанавливать пакеты по списку, который называется тегфайлом, и это штатная возможность менеджера пакетов. В Debian это делается с помощью dpkg get|set selections.
Поэтому крайне рекомендуется читать страницы руководств (man), литературу для системных администраторов и учебники скриптовому языку командного интерпретатора, одним из множества которых является bash, который еще и довольно широко распространен.

Стоит один составить список программ дл установки - больше этого делать не придеться. Так что раз можно и потрудиться. Я написал эту статью вспоминая себя как я мучился настривать систему после ее установки или переустановки. Мне бы тогда данная информация была бы полезна.

#337226

astronom1987, настойчиво рекомендую прислушаться к Lupo, и открыть для себя хотя бы BBcode.
Форматирование абзаца пробелами, пусть и перенесенное копипастой из редактора говорит о компьютерной безграмотности.

#337229

Я понимаю. Но ведь этот способ далеко не идеальный, например, пакетов может быть больше чем вмещает аргументов командная строка. В данном случае без скрипта никак, да и работы всяко меньше, например, можно сделать грубый аналог тегфайла - список пакетов по одному на строку и скрипт установки по этому списку:

text
#!/bin/bash

# Скрипт для автоустановки пакетов по списку # Принимает единственный аргумент - полное имя файла, в котором хранится список

if [ -z "$#" ]; then echo "Usage: $0 /path/to/packagelist" exit 1; else while read i; do urpmi --noclean "$i" done < "$1"; fi

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

#337238

Установка кучи rpm-пакетов:

text
# urpmi /путь_до_пакетов/*.rpm

И не надо вводить длинных команд.

#337240

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

#337241

yars,
Толку от этих файлов-списков, если установка будет проводиться не из сети, а с локального носителя, с уже определёнными пакетами с зависимостями, которых может и не быть на официальных DVD, например.

Вставил носитель - набрал команду - все дела.

#337278
verg написал:
yars,
Толку от этих файлов-списков, если установка будет проводиться не из сети, а с локального носителя, с уже определёнными пакетами с зависимостями, которых может и не быть на официальных DVD, например.

Вставил носитель - набрал команду - все дела.

Это да, но зачем опять же вручную отбирать нужные пакеты?

text
echo "$(basename $(find -type f /var/log/packages -exec echo {} \; | rev | cut -d- -f3- | rev)) ADD" >> tagfile

Уже почти можно идти к другой машине - тут еще нужно учесть, что пакеты на DVD раскиданы по категориям (каталогам), в которых лежат пакеты разных частей дистрибутива, например, a -базовая система, ap - консольные программы и т.д, это несложно. С RPM будет сложнее, там же база данных, которую grep-sed-awk не понимают.

#337279

"yars⇓" написал:
С RPM будет сложнее
Будет.
#337280
"yars" написал:
Это да, но зачем опять же вручную отбирать нужные пакеты?

А кто-то за меня подумает, что мне конкретно нужно, а что нет =)
Например хочу пакет из левого репозитория со всеми зависимостями.
Сделать это нужно будет только один раз.

Ведь речь не о списках пакетов установленных в системе, которые имеются в логах, а уже о конкретных скаченных файлах, что и хочет ТС.


А вот раскидывать по категориям и каталогам уже лишняя работа.

#337281

verg написал:
Ведь речь не о списках пакетов установленных в системе, которые имеются в логах, а уже о конкретных скаченных файлах, что и хочет ТС.
Вот в том-то и дело, что нет :) ТС ставит систему, берет кэш пакетов и копирует на носитель. Это да, потом одной командой можно все поставить, и я так тоже могу. Но для этого ему еще систему поднять надо, разве нет? :)
#337282
"yars" написал:
Но для этого ему еще систему поднять надо, разве нет? ab

ТС об этом упоминает =)

III — Шаг

Теперь когда мы садимся за другой компьютер ставим систему как обычно
#337283
verg написал:
[quote="yars"]Но для этого ему еще систему поднять надо, разве нет? ab

ТС не об этом пишет =)

III — Шаг

Теперь когда мы садимся за другой компьютер ставим систему как обычно
[/quote]
Вот! :) А я систему могу поставить сразу в нужном варианте, в том числе и с пакетами, которых изначально в дистрибутиве нет. Так что, выходит, средств автоустановки в Магии нету ;)
#337284
"yars" написал:
Вот! ab А я систему могу поставить сразу в нужном варианте, в том числе и с пакетами, которых изначально в дистрибутиве нет. Так что, выходит, средств автоустановки в Магии нету

Эм. как бы можно во время установки с DVD подсунуть нужный файлик со списком пакетов выборочной установки.
Только тема не о том. Ни о полном клонировании систем, Ни о первоначальной установке с выбором нужных пакетов.
По крайней мере этого не получится сделать по этому мануалу, так как каталог с кэшем пакетов после установки системы изначально пустой.
Вас смутило название темы.

Войдите или зарегистрируйтесь, чтобы ответить.