Ansibleは自動化を行うためには基本「Playbook」を作成しないといけません。
しかし、シンプルなコマンドなどで確認する際、いちいち「Playbook」を作成するのは面倒くさいですし、大変です
そこで、Ansibleには、この様な時に便利な機能として「Adhocコマンド」があります。
この「Adhocコマンド」は特定の「モジュール」と「パラメータ」を指定して簡単な処理を実行することができます。
シンプルな操作を実行させる「Adhocコマンド」の使い方
「Adhocコマンド」はコマンド形式で以下の様な簡単な処理を実行することができます。
以下は「Adhocコマンド」の形式となります。
$ ansible [pattern] -m [module] -a "[module options]"
以下は、代表的なAnsibleコマンドの実行例となります。
localhostへ接続し、「ping」コマンドを実行した結果が表示されます。
$ ansible localhost -m ping localhost | SUCCESS => { "changed": false, "ping": "pong" } $
これは、Ansibleが操作する対象ホストである「localhost」へ接続し、正常にpingモジュールを実行した結果となります。
「shellモジュール」を指定したAdhocコマンド実行例
上記の様なPingモジュール意外にも「shellモジュール」を指定すると実際の機器のコマンドを実行することも可能です。
バージョン確認
$ ansible localhost -m shell -a "cat /etc/redhat-release" localhost | CHANGED | rc=0 >> CentOS Linux release 8.2.2004 (Core) $
ホスト名確認
$ ansible localhost -m shell -a hostname localhost | CHANGED | rc=0 >> test.local $
「yumコマンド」を指定したAdhocコマンド実行例
Adhocコマンドは、パッケージインストールを実行する「yum」コマンドを実行することも可能です。
以下は、yumコマンドを使用した実行例となります。
最新の「vim」パッケージをyumインストールする
$ ansible localhost -m yum -a "name=vim state=present" localhost | CHANGED => { "ansible_facts": { "pkg_mgr": "dnf" }, "changed": true, "msg": "", "rc": 0, "results": [ "Installed: vim-filesystem-2:8.0.1763-13.el8.noarch", "Installed: gpm-libs-1.20.7-15.el8.x86_64", "Installed: vim-common-2:8.0.1763-13.el8.x86_64", "Installed: vim-enhanced-2:8.0.1763-13.el8.x86_64" ] } $
パッケージが最新バージョンかを確認
$ ansible localhost -m yum -a "name=vim state=latest" localhost | SUCCESS => { "ansible_facts": { "pkg_mgr": "dnf" }, "changed": false, "msg": "Nothing to do", "rc": 0, "results": [] } $
機器再起動
Adhocコマンドはサーバー上で実行できる事はなんでも可能です。
再起動も簡単に以下の様なコマンドで実行することが可能です。
$ ansible localhost -a "/sbin/reboot" localhost | CHANGED | rc=0 >> Connection to localhost closed by remote host. Connection to localhost closed. $
以上がAnsibleで実行できる「Adhocコマンド」の実行例となります。
エンジニアのオンライン学習
ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。
おすすめオンライン教材 | |
自宅で学習ができるオンラインスクール | |
ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。
コメントを残す