シェルスクリプトまたは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

したがって、新しいシステムを構成するときにこのコード行を開始できます。

おすすめ記事