別のユニットが正常に完了した後、別のユニットの実行を指示します。

別のユニットが正常に完了した後、別のユニットの実行を指示します。

cloud-config を使用して DCOS クラスターをインストールして構成します。

通常、agentinstall.serviceサービスの完了には5分かかります。

systemdに実行を指示することは可能ですか?agentconfigure.service その後 agentinstall.service十分?

#cloudconfig
コア:
  単位:
    - 名前: "agentinstall.service"
      コマンド:「スタート」
      内容:|
        [単位]
        説明=プロキシ設定
        以降 = network.target

        [提供する]
        タイプ=シンプル
        ユーザー=ルート
        作業ディレクトリ=/tmp
        ExecStartPre=/bin/curl -o /tmp/dcos_install.sh http://bootstapnode-0.dev.myztro.internal:9090/dcos_install.sh
        ExecStartPre=/bin/chmod 755 dcos_install.sh
        ExecStart=/bin/bash dcos_install.sh スレーブ

        [インストールする]
        WantedBy =マルチユーザー。ターゲット
    - 名前: "agentconfigure.service"
      コマンド:「スタート」
      内容:|
        [単位]
        説明 = プロキシの設定
        以降=agentinstall.service

        [提供する]
        タイプ=シンプル
        ユーザー=ルート
        作業ディレクトリ=/opt/mesosphere/etc/
        ExecStartPre=/bin/echo "MESOS_ATTRIBUTES=cluster:uploader" >> /opt/mesosphere/etc/mesos-slave-common
        ExecStartPre=/bin/rm -f /var/lib/mesos/slave/meta/slaves/latest
        ExecStart=/usr/bin/systemctl dcos-mesos-slave 再起動

        [インストールする]
        WantedBy =マルチユーザー。ターゲット

ありがとうございます。

ベストアンサー1

systemdを使用してこれを行う方法は、デバイスの起動と実行にのみ興味があると思ったからです。たとえば、After=指定されたデバイスが起動した後にのみ1つのデバイスを強制的に起動したり、2つのデバイスを並列に起動したりできます。

Wants=目的のデバイスではなく、指定されたデバイスが並列に起動するようにします(必要なデバイスがまだ起動/アクティブ化されていない場合)。

Requires=After=onと一緒に使用すると、agentconfigure.service有効になった後( "busy")起動しますagentconfigure.service。これで最大5分間待機ループがあり、agentinstall.service実際の作業を続行する前にagentconfigure.service定期的に完了するかどうかを確認できます。agentinstall.service私が見る唯一のオプション。

編集:私が考えるもう一つのオプションは、インストールが成功したら実行してからagentinstall.service終了agentconfigure.serviceすることです。

おすすめ記事