Назад | Перейти на главную страницу

Получите подпакет rpm для установки с обновлением

В рамках моей стажировки мне пришлось развернуть клиентов OpenVPN примерно на 60-70 клиентских устройствах, на которых работает CentOS (которые находятся в частных сетях и к ним нельзя получить прямой доступ). Я новичок в управлении пакетами. Я обновил уже существующий файл SPEC, созданный сотрудником, который больше не работает здесь. Я добавил подпакет в файл спецификации, и он генерирует подпакет под названием "основной пакет-openvpn-версия"на здании. Это работает правильно.

Моя проблема в том, что когда клиентские устройства запускают «yum update mainpackage- *» (что он делает автоматически), он обновляет только уже установленные подпакеты (как и ожидалось). Есть ли способ заставить его забрать мой новый субпакет openvpn и установить его тоже? Поскольку запускать yum install на всех 60 машинах непрактично, я ищу способы заставить его работать с обновлением. Или я смотрю на это совершенно неправильно, и есть ли более чистый способ справиться с этим?

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

Если поможет, выкладываю сюда соответствующий раздел из файла SPEC.

%post openvpn

hostname="$(/path/to/get_login.sh)"
sed -i "s/cert_here/$hostname.crt/" /etc/openvpn/client.conf
sed -i "s/key_here/$hostname.key/" /etc/openvpn/client.conf

psswd="$(mysql -Ns -u username -ppassword database -e "SELECT value FROM table
 WHERE parameter='PASSWORD'")"

cd /etc/openvpn/

curl -k -o certs.tar.gz http://webservice-to-get-certificates/$hostname/$psswd

tar -xf /etc/openvpn/certs.tar.gz

rm -f certs.tar.gz

chmod 755 /etc/init.d/openvpn

chkconfig --add openvpn
systemctl start openvpn

%files openvpn
/etc/openvpn/client.conf
%attr(755, -, -) /etc/rc.d/init.d/openvpn

Почему вы вообще создаете отдельный подпакет?

  • Если ваш подпакет всегда должен устанавливаться при установке основного пакета, то, возможно, вам не стоит создавать отдельный подпакет.
  • Если ваш подпакет не всегда должен автоматически устанавливаться при установке основного пакета; то ответственность за установку этого дополнительного подпакета лежит на пользователе ...