У нас есть автоматизированный процесс развертывания новых виртуальных машин RHEL. Однако до сих пор существует неприятный ручной шаг по установке агента NetBackup на машину. Для этого необходимо скопировать на машину большой архив (~ 1 ГБ), распаковать архив и запустить интерактивный установочный скрипт.
Итак, я думал о создании для этого специального RPM, который содержит установочные файлы агента NetBackup и запускает настраиваемый ожидать скрипт для автоматизации интерактивного установщика. Затем мы могли бы просто отправить этот RPM на сервер.
Однако я новичок в создании RPM (читай: никогда не делал этого раньше), поэтому я не знаю, как «склеить» части вместе. У меня уже есть ожидать скрипт и, конечно же, установочные файлы агента (архив tar.gz). Теперь, как мне упаковать все это в один RPM?
Ожидайте сценарий:
#!/usr/bin/expect -d
set timeout -1
spawn ./install
expect "Do you wish to continue?"
send "y\n"
expect "Do you want to install the NetBackup client software for this client?"
send "y\n"
expect "Enter the name of the NetBackup master server"
send "myserver.example.com\n"
expect "name of the NetBackup client?"
send "n\n"
expect "Enter the name of this NetBackup client"
send "client.example.com\n"
expect eof
Архив: client-7.6.0.1.tar.gz
.
├── Doc
├── install (the interactive installer)
└── NBClients
Попробуйте создать файл конфигурации клиента netbackup и поместить его в пакет RPM. Не нужно ожидать скрипта, который предназначен для создания файла конфигурации клиента.
Взгляни на fpm позволяет легко создавать произвольные .rpm (и другие типы пакетов). Есть много документация, среди прочего вы, вероятно, найдете --after-install FILE
полезно как он называет A script to be run after package installation
.