拝承です。

サーバエンジニアの個人的メモ。主にCentOSとMac。たまにWindows、カメラネタもあり。

AnsibleでShellScriptをリモート実行

前回までで、AnsibleのPlaybookは比較的簡単に作れることが分かった。けれども結局はYAMLファイルを独自に作りこまないといけないから、過去の資産をそのまま活かすのは難しい。ということで、一般的なShellScriptをAnsibleでリモート環境に送り込んでリモートで実行する方法を試してみる。

サンプルスクリプト

[vagrant@vm1 ~]$ vi httpd.sh

 

#!/bin/sh

sudo yum -y install httpd

sudo systemctl start httpd

Apacheをインストールして起動するだけのなんとも単純なスクリプト

実行

[vagrant@vm1 ~]$ ansible 192.168.33.11 -k -m script -a 'httpd.sh'

scriptモジュールで指定したスクリプトをリモートに送り込んで実行できる

 

192.168.33.11 | SUCCESS => {

    "changed": true, 

    "rc": 0, 

    "stderr": "", 

    "stdout": "読み込んだプラグイン:fastestmirror\r\nLoading mirror speeds from cached hostfile\r\n * base: ftp.riken.jp\r\n * extras: ftp.riken.jp\r\n * updates: ftp.riken.jp\r\n依存性の解決をしています\r\n--> トランザクションの確認を実行しています。\r\n---> パッケージ httpd.x86_64 0:2.4.6-40.el7.centos を インストール\r\n--> 依存性解決を終了しました。\r\n\r\n依存性を解決しました\r\n\r\n================================================================================\r\n Package       アーキテクチャー\r\n                              バージョン                     リポジトリー  容量\r\n================================================================================\r\nインストール中:\r\n httpd         x86_64         2.4.6-40.el7.centos            base         2.7 M\r\n\r\nトランザクションの要約\r\n================================================================================\r\nインストール  1 パッケージ\r\n\r\n総ダウンロード容量: 2.7 M\r\nインストール容量: 9.4 M\r\nDownloading packages:\r\n\rhttpd-2.4.6-40.el7.centos. 21% [===             ]  0.0 B/s | 593 kB   --:-- ETA \r\rhttpd-2.4.6-40.el7.centos. 23% [===-            ]  62 kB/s | 645 kB   00:34 ETA \r\rhttpd-2.4.6-40.el7.centos. 38% [======          ] 139 kB/s | 1.0 MB   00:12 ETA \r\rhttpd-2.4.6-40.el7.centos. 50% [========        ] 192 kB/s | 1.4 MB   00:07 ETA \r\rhttpd-2.4.6-40.el7.centos. 61% [=========-      ] 243 kB/s | 1.7 MB   00:04 ETA \r\rhttpd-2.4.6-40.el7.centos. 84% [=============   ] 350 kB/s | 2.3 MB   00:01 ETA \r\rhttpd-2.4.6-40.el7.centos.x86_64.rpm                       | 2.7 MB   00:02     \r\nRunning transaction check\r\nRunning transaction test\r\nTransaction test succeeded\r\nRunning transaction\r\n警告: RPMDB は yum 以外で変更されました。\r\n\r  インストール中          : httpd-2.4.6-40.el7.cen [                      ] 1/1\r  インストール中          : httpd-2.4.6-40.el7.cen [#                     ] 1/1\r  インストール中          : httpd-2.4.6-40.el7.cen [##                    ] 1/1\r  インストール中          : httpd-2.4.6-40.el7.cen [###                   ] 1/1\r  インストール中          : httpd-2.4.6-40.el7.cen [####                  ] 1/1\r  インストール中          : httpd-2.4.6-40.el7.cen [#####                 ] 1/1\r  インストール中          : httpd-2.4.6-40.el7.cen [######                ] 1/1\r  インストール中          : httpd-2.4.6-40.el7.cen [#######               ] 1/1\r  インストール中          : httpd-2.4.6-40.el7.cen [########              ] 1/1\r  インストール中          : httpd-2.4.6-40.el7.cen [#########             ] 1/1\r  インストール中          : httpd-2.4.6-40.el7.cen [##########            ] 1/1\r  インストール中          : httpd-2.4.6-40.el7.cen [###########           ] 1/1\r  インストール中          : httpd-2.4.6-40.el7.cen [############          ] 1/1\r  インストール中          : httpd-2.4.6-40.el7.cen [#############         ] 1/1\r  インストール中          : httpd-2.4.6-40.el7.cen [##############        ] 1/1\r  インストール中          : httpd-2.4.6-40.el7.cen [###############       ] 1/1\r  インストール中          : httpd-2.4.6-40.el7.cen [################      ] 1/1\r  インストール中          : httpd-2.4.6-40.el7.cen [#################     ] 1/1\r  インストール中          : httpd-2.4.6-40.el7.cen [##################    ] 1/1\r  インストール中          : httpd-2.4.6-40.el7.cen [###################   ] 1/1\r  インストール中          : httpd-2.4.6-40.el7.cen [####################  ] 1/1\r  インストール中          : httpd-2.4.6-40.el7.cen [##################### ] 1/1\r  インストール中          : httpd-2.4.6-40.el7.centos.x86_64                1/1 \r\n\r  検証中                  : httpd-2.4.6-40.el7.centos.x86_64                1/1 \r\n\r\nインストール:\r\n  httpd.x86_64 0:2.4.6-40.el7.centos                                            \r\n\r\n完了しました!\r\n", 

    "stdout_lines": [

        "読み込んだプラグイン:fastestmirror", 

        "Loading mirror speeds from cached hostfile", 

        " * base: ftp.riken.jp", 

        " * extras: ftp.riken.jp", 

        " * updates: ftp.riken.jp", 

        "依存性の解決をしています", 

        "--> トランザクションの確認を実行しています。", 

        "---> パッケージ httpd.x86_64 0:2.4.6-40.el7.centos を インストール", 

        "--> 依存性解決を終了しました。", 

        "", 

        "依存性を解決しました", 

        "", 

        "================================================================================", 

        " Package       アーキテクチャー", 

        "                              バージョン                     リポジトリー  容量", 

        "================================================================================", 

        "インストール中:", 

        " httpd         x86_64         2.4.6-40.el7.centos            base         2.7 M", 

        "", 

        "トランザクションの要約", 

        "================================================================================", 

        "インストール  1 パッケージ", 

        "", 

        "総ダウンロード容量: 2.7 M", 

        "インストール容量: 9.4 M", 

        "Downloading packages:", 

        "", 

        "httpd-2.4.6-40.el7.centos. 21% [===             ]  0.0 B/s | 593 kB   --:-- ETA ", 

        "", 

        "httpd-2.4.6-40.el7.centos. 23% [===-            ]  62 kB/s | 645 kB   00:34 ETA ", 

        "", 

        "httpd-2.4.6-40.el7.centos. 38% [======          ] 139 kB/s | 1.0 MB   00:12 ETA ", 

        "", 

        "httpd-2.4.6-40.el7.centos. 50% [========        ] 192 kB/s | 1.4 MB   00:07 ETA ", 

        "", 

        "httpd-2.4.6-40.el7.centos. 61% [=========-      ] 243 kB/s | 1.7 MB   00:04 ETA ", 

        "", 

        "httpd-2.4.6-40.el7.centos. 84% [=============   ] 350 kB/s | 2.3 MB   00:01 ETA ", 

        "", 

        "httpd-2.4.6-40.el7.centos.x86_64.rpm                       | 2.7 MB   00:02     ", 

        "Running transaction check", 

        "Running transaction test", 

        "Transaction test succeeded", 

        "Running transaction", 

        "警告: RPMDB は yum 以外で変更されました。", 

        "", 

        "  インストール中          : httpd-2.4.6-40.el7.cen [                      ] 1/1", 

        "  インストール中          : httpd-2.4.6-40.el7.cen [#                     ] 1/1", 

        "  インストール中          : httpd-2.4.6-40.el7.cen [##                    ] 1/1", 

        "  インストール中          : httpd-2.4.6-40.el7.cen [###                   ] 1/1", 

        "  インストール中          : httpd-2.4.6-40.el7.cen [####                  ] 1/1", 

        "  インストール中          : httpd-2.4.6-40.el7.cen [#####                 ] 1/1", 

        "  インストール中          : httpd-2.4.6-40.el7.cen [######                ] 1/1", 

        "  インストール中          : httpd-2.4.6-40.el7.cen [#######               ] 1/1", 

        "  インストール中          : httpd-2.4.6-40.el7.cen [########              ] 1/1", 

        "  インストール中          : httpd-2.4.6-40.el7.cen [#########             ] 1/1", 

        "  インストール中          : httpd-2.4.6-40.el7.cen [##########            ] 1/1", 

        "  インストール中          : httpd-2.4.6-40.el7.cen [###########           ] 1/1", 

        "  インストール中          : httpd-2.4.6-40.el7.cen [############          ] 1/1", 

        "  インストール中          : httpd-2.4.6-40.el7.cen [#############         ] 1/1", 

        "  インストール中          : httpd-2.4.6-40.el7.cen [##############        ] 1/1", 

        "  インストール中          : httpd-2.4.6-40.el7.cen [###############       ] 1/1", 

        "  インストール中          : httpd-2.4.6-40.el7.cen [################      ] 1/1", 

        "  インストール中          : httpd-2.4.6-40.el7.cen [#################     ] 1/1", 

        "  インストール中          : httpd-2.4.6-40.el7.cen [##################    ] 1/1", 

        "  インストール中          : httpd-2.4.6-40.el7.cen [###################   ] 1/1", 

        "  インストール中          : httpd-2.4.6-40.el7.cen [####################  ] 1/1", 

        "  インストール中          : httpd-2.4.6-40.el7.cen [##################### ] 1/1", 

        "  インストール中          : httpd-2.4.6-40.el7.centos.x86_64                1/1 ", 

        "", 

        "  検証中                  : httpd-2.4.6-40.el7.centos.x86_64                1/1 ", 

        "", 

        "インストール:", 

        "  httpd.x86_64 0:2.4.6-40.el7.centos                                            ", 

        "", 

        "完了しました!"

    ]

}

うまくいった模様。yumの結果は/dev/nullに落としておけばよかった

[vagrant@vm1 ~]$ curl http://192.168.33.11

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"

(略)

Apacheが立ち上がった!