Как автоматизировать команды, которые я использую очень часто на VPS?

У меня есть некоторые проекты на DigitalOcean VPSs. Я развертываю части кода очень часто. Почти после каждой загрузки я должен сделать несколько команд.

Например, если я изменяю модели Django и добавляю некоторые статические файлы:

Я должен соединиться через ssh и:

activate virtualenv
cd to /home/django/project/
python manage.py makemigrations
python manage.py migrate 
python manage.py collectstatic
sudo systemctl daemon-reload
sudo systemctl restart gunicorn
sudo systemctl restart nginx
sudo supervisorctl
restart celery_worker

Конечно, мне не нужны все команды каждый раз.

Я хотел бы сделать это более удобным для работы с этими командами.

Есть ли некоторое приложение, где я могу определить те команды и затем выбрать от них и выполниться?

Самая близкая вещь, которая прибывает по моему мнению, состоит в том, чтобы создать сценарии оболочки, но возможно существует более оптимальный вариант.

Я использую PyCharm для развертывания. Я проверил документы, и я не нашел такую функцию, но возможно существует.

1
задан 20 July 2017 в 10:10

1 ответ

Самая близкая вещь, которая прибывает по моему мнению, состоит в том, чтобы создать сценарии оболочки, но возможно существует более оптимальный вариант.

Есть ли некоторое приложение, где я могу определить те команды и затем выбрать от них и выполниться?

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

Относительно сценариев оболочки:

Можно создать довольно тщательно продуманные сценарии оболочки. Взгляните на то, Как я могу создать избранное меню в сценарии оболочки? поскольку "меню" разрабатывает метод с помощью "диалогового окна". "tasksel" является сценарием, который довольно необычен для командной строки и похож на это:

enter image description here

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

2
ответ дан 7 December 2019 в 13:31

Другие вопросы по тегам:

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