Ansibleで複数行のシェルスクリプトを実行する方法

ルガーデンフォックス:

現在、私は複数行にある場合にはるかに読みやすいansibleでシェルスクリプトを使用しています

- name: iterate user groups
  shell: groupmod -o -g {{ item['guid'] }} {{ item['username'] }} ....more stuff to do
  with_items: "{{ users }}"

Ansibleシェルモジュールで複数行スクリプトを許可する方法がわからない

ラーク:

Ansibleは、プレイブックでYAML構文を使用しています。YAMLにはいくつかのブロック演算子があります。

  • >折りたたみブロック演算子です。つまり、複数の行をスペースで結合します。次の構文:

    key: >
      This text
      has multiple
      lines
    

    に値This text has multiple lines\n割り当てますkey

  • |文字はリテラルブロック演算子です。これはおそらく、複数行のシェルスクリプトに必要なものです。次の構文:

    key: |
      This text
      has multiple
      lines
    

    に値This text\nhas multiple\nlines\n割り当てますkey

これは、次のような複数行のシェルスクリプトに使用できます。

- name: iterate user groups
  shell: |
    groupmod -o -g {{ item['guid'] }} {{ item['username'] }} 
    do_some_stuff_here
    and_some_other_stuff
  with_items: "{{ users }}"

注意点が1つあります。Ansibleはshellコマンドへの引数のぎこちない操作を行うため、上記は通常期待どおりに機能しますが、以下は機能しません。

- shell: |
    cat <<EOF
    This is a test.
    EOF

Ansibleは実際にテキストを先行スペースでレンダリングします。つまり、シェルはEOF行の先頭で文字列見つけることはありません次のcmdようなパラメーターを使用することで、Ansibleの役に立たないヒューリスティックを回避できます。

- shell:
    cmd: |
      cat <<EOF
      This is a test.
      EOF

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

複数のタブを開き、シェルスクリプトでコマンドを実行する

別のシェルスクリプトを使用して複数のシェルスクリプトを1つずつ実行する方法

複数のファイルに対してスペルチェックを実行し、シェルスクリプトに不正な単語を表示する方法

`find`と` xargs`を使用してシェルスクリプトで複数のコマンドを実行する

シェルスクリプトを使用して複数の.javaファイルを実行する方法

Jenkins Groovy内の複数行のシェルスクリプトで変数を設定する方法

Jenkins Groovy内の複数行のシェルスクリプトで変数を設定する方法

別のシェルスクリプトを使用して、複数のシェルスクリプトを1つずつ実行する方法

シェルスクリプトで複数行の環境変数をエクスポートする方法

シェルから次々に複数のPythonスクリプトを実行する方法

シェルから次々に複数のPythonスクリプトを実行する方法

djangoでスクリプトシェルを実行する方法

Dockerの実行中にシェルスクリプトを実行する方法

AWSEKSで複数のコンテナでシェルスクリプトを一度に実行する方法

複数のファイルでスクリプトpythonを実行する方法

n行のシェルスクリプトを実行する

複数のシェルでスクリプトを実行しますか?

シェルスクリプトでSQLを実行する方法

gitcommitでシェルスクリプトを実行する方法

シェルスクリプトを使用して複数行のmysqlクエリを実行する方法は?

Ubuntuのシェルスクリプト内で.profileを実行する方法

gitcommitでシェルスクリプトを実行する方法

PHPでシェルスクリプトを実行する方法

gnomeシェルを起動し、スクリプトから複数のコマンドを実行する方法

入力として複数のファイルでシェルスクリプトを実行する

複数のhttpdインスタンスの停止開始を実行するシェルスクリプト

スクリプトからではなく、シェルから複数行のPythonコードを実行する方法

シェルスクリプトで変数オプションを使用してansible-playbookを実行する方法は?

特定のgitcommitでシェルスクリプトを実行する方法は?

TOP 一覧

  1. 1

    Oracle11gクライアントを使用したOracle19Cサーバーへの接続

  2. 2

    Ansibleで複数行のシェルスクリプトを実行する方法

  3. 3

    Reactでclsxを使用する方法

  4. 4

    Google Cloud Storage から単一ページの React アプリを提供する

  5. 5

    App Engineクイックスタートから「helloworld.go」をアンデプロイし、代わりにバケット内のhtmlをポイントするにはどうすればよいですか?

  6. 6

    LaravelはDB接続を自動的に閉じますか?

  7. 7

    print( "\ 0007")がビープ音を鳴らさないのはなぜですか?

  8. 8

    小さいデータセットサイズと大きいデータセットサイズを使用するMPI_Gatherを使用したMPI_Barrier?

  9. 9

    フィルタスライダーで複数の範囲を選択します-Tableau

  10. 10

    Eclipseエラー:ビルドパスが不完全であると表示されます

  11. 11

    Python / SciPyのピーク検出アルゴリズム

  12. 12

    複数の条件でループを構築する

  13. 13

    Angular 9 TypeError:未定義のプロパティ「subscribe」を読み取れません

  14. 14

    Openlayers 3 : Interaction DragBox が機能しない

  15. 15

    JavaからのMATLAB関数によりランタイムエラーが発生する(EXCEPTION_ACCESS_VIOLATION)

  16. 16

    JavaのREST APIの認証、JWTとベストプラクティス

  17. 17

    Hibernate5への移行

  18. 18

    PipedInputStream-「java.io.IOException:Pipe broken」を回避する方法

  19. 19

    Eclipseに既存のJavaプロジェクトをインポートしますが、JFrameのデザインビューが存在しませんか?

  20. 20

    Ubuntuでmatplotlibプロット(およびその他のGUI)を表示する(WSL1およびWSL2)

  21. 21

    なぜArrays.copyOfは2倍高速System.arraycopyのより小さなアレイ用のでしょうか?

ホットタグ

アーカイブ