쉘 스크립트 또는 boto를 사용하여 aws에서 systemctl 파일을 변경하는 방법

쉘 스크립트 또는 boto를 사용하여 aws에서 systemctl 파일을 변경하는 방법

다음 systemctl 파일이 있습니다.

[Unit]
Description=Airflow celery worker daemon
After=network.target postgresql.service mysql.service redis.service rabbitmq-server.service
Wants=postgresql.service mysql.service redis.service rabbitmq-server.service

[Service]
EnvironmentFile=/etc/sysconfig/airflow
User=airflow
Group=airflow
Type=simple
ExecStart=/bin/airflow worker
Restart=on-failure
RestartSec=10s

[Install]
WantedBy=multi-user.target

잘 달리고 있어요. 하지만 예를 들어 머신을 시작할 때 다른 이름을 제공해야 합니다.

ExecStart=/bin/airflow worker -q "nameOfWorker"

그러나 요청에 따라 인스턴스를 시작할 때 "nameOfWorker"가 결정됩니다. 이미 systemctl 파일이 있는 이미지에서 인스턴스를 시작하고 있습니다.

기계에 SSH로 접속할 수 있어요

ssh -i "opencpu-fin.pem" ubuntu@***-**-***-***-***.**-****-2.compute.amazonaws.com in shell script.

다음에 무엇을 해야 합니까? 모든 지침이 적용됩니다.

답변1

어쩌면 방법이 있을 수도 있습니다. 이러한 파일을 배포할 때 를 사용할 수 있습니다 sed. 따라서 기본 구성 파일에는 다음 줄이 포함될 수 있습니다.

...
Type=simple
ExecStart=/bin/airflow worker -q "nameOfWorker"
Restart=on-failure
...

"nameOfWorker" 문자열을 예상 이름으로 전환하는 스크립트가 있을 수 있습니다.

sed 's/nameOfWorker/${intendedName}/' YourBaseSystemd.service > NewlyMade.service

따라서 새 시스템을 구성할 때 이 코드 줄을 시작할 수 있습니다.

관련 정보