В рамках моей стажировки мне пришлось развернуть клиентов 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
Почему вы вообще создаете отдельный подпакет?