Como alterar o arquivo systemctl usando o shell script ou boto no aws

1

Eu tenho o seguinte arquivo 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

que está funcionando bem. No entanto, eu tenho que fornecer um nome diferente quando eu rodar máquinas, por exemplo

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

No entanto, "nameOfWorker" é decidido quando estou iniciando a instância, dependendo do requisito. Estou iniciando a instância da imagem que já possui o arquivo systemctl.

Eu posso usar ssh na máquina usando

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

O que devo fazer em seguida? Qualquer orientação será appricated

    
por Kppatel Patel 29.07.2017 / 04:34

1 resposta

1

Pode haver um jeito. Ao implantar esses arquivos, você poderá editá-los usando sed . Portanto, seu arquivo de configuração base pode ter as seguintes linhas:

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

E você pode ter um script que desative a string "nameOfWorker" para o nome pretendido:

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

Assim, você pode ter essa linha de código iniciada ao provisionar novas máquinas.

    
por 30.07.2017 / 05:25

Tags