Обновление приложений инициировано из веб-приложения на Ubuntu/Linux

Я рекомендовал бы использовать пакет backupninja - это - в основном обертка для некоторых автоматических сценариев для того, чтобы сделать резервное копирование различных сервисов. Я могу использовать duplicity, rdiff-backup (мое предпочтение), запишите DVD ISO и т.д.

sudo apt-get install backupninja rdiff-backup

И получить Вас запустилось (будет вести Вас посредством установки различных частей):

sudo ninjahelper

Это также позволяет Вам добавлять случайные пути к резервному копированию, когда это в нем так или иначе. От того, что спас несколько машин от резервного копирования, я нахожу удобным смочь скопировать по известному / и т.д.,/srv/http (где я сохраняю веб-материал), и дампы базы данных.

После того как это сделано, единственная проблема состоит в том, что ninjahelper настаивает, чтобы Вы или установили пароль root на удаленной машине - или вручную передали ключ SSH (ЕСЛИ Вы делаете удаленные резервные копии вообще):

На локальной машине:

sudo ssh-keygen
sudo scp /root/.ssh/id_dsa.pub YOUR_USERNAME@remote.machine.tld:backup_key

Ubuntu идет с резервным пользователем на значение по умолчанию, таким образом, мы добавляем ключ SSH для разрешения удаленных входов в систему:

sudo mkdir -p /var/backup/.ssh
sudo mv backup_key /var/backup/.ssh/authorized_keys
sudo chown backup:backup /var/backup/.ssh/authorized_keys

(Это из памяти, таким образом, я мог бы быть немного выключен на точных командах...),

1
задан 29 March 2010 в 14:26
2 ответа

Настройте sudo, чтобы позволить www-данным выполнить тот сценарий или как myapp или как корень (в зависимости от которого предпочтен), затем выполните его как sudo redeploymyapp.

Это должно быть столь же просто как:

www-данные ВСЕ = (myapp) NOPASSWD: redeploymyapp

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

0
ответ дан 4 December 2019 в 10:43

Одна опция состоит в том, чтобы позволить MyPortal, при нажатии кнопки, запишите значение в в базе данных или в файл. В свою очередь MyApp непрерывно контролирует ту базу данных/файл.

Иначе можно использовать некоторое suexec волшебство удостовериться, что redeploymyapp может быть выполнен как myapp пользователь. Какое suexec решение наиболее подходит, действительно зависит, на каком языке сценариев Вы используете и т.д.

(Контакт со Сценариями PHP у меня есть хороший опыт с suPHP.)

Затем существует также, как James упоминает, маршрут sudo.

0
ответ дан 4 December 2019 в 10:43

Теги

Похожие вопросы