ときどきAnsible日記

主にITインフラ基盤の自動化に関する事を書いているブログです

よく使うModuleについて

お疲れ様です。伊藤です。

Playbookが動く環境まで作りました。ここからは実際にAnsibleで環境構築や変更を行っていきます。前回のPlaybookでユーザを追加しましたが、その中にuser:というような記述があったかと思います。あの部分がModuleと言われるAnsibleのメイン機能になります。要は与えられたパラメータを基にサーバに対して作業をする部品です。Ansibleには現在1000を超えるModuleがあります。すべてのモジュールの一覧は下記を参照してください。(ただし英語)
All Modules — Ansible Documentation

この中で個人的によく使うと思われるものは下記になります。

Linux向けのModule】

  • copy - リモートの場所にファイルをコピーします
  • cron - cron.dとcrontabエントリを管理します
  • expect - コマンドを実行し、プロンプトに応答します
  • file - ファイルの属性を設定します
  • find - 特定の条件に基づいてファイルのリストを返します
  • hostname - ホスト名を管理します
  • include - プレイリストまたはタスクリストを含めます
  • iptables - システムのiptablesを変更します
  • service - サービスを管理します
  • sysctl - sysctl.confのエントリを管理します
  • systemd - サービスを管理します
  • user - ユーザーアカウントを管理します
  • yum - yumパッケージマネージャーでパッケージを管理します

Windows向けのModule】

  • win_copy - Windowsホスト上のリモートロケーションにファイルをコピーします
  • win_environment - Windowsホスト上の環境変数を変更します。
  • win_file - ファイルまたはディレクトリを作成、タッチまたは削除します
  • win_package - ローカルファイルシステムまたはURLからインストール可能なパッケージをインストール/アンインストールします
  • win_path - Windowsパス環境変数を管理します
  • win_reboot - Windowsマシンを再起動します
  • win_shell - ターゲットホスト上でシェルコマンドを実行します
  • win_user - ローカルのWindowsユーザーアカウントを管理します

Linuxのほうは通常のコマンドと同じ名前のものがありますが、機能は似ていますが使い方が全然違いますのでご注意ください。

一部のmoduleを使用する際にselinuxが有効になっていると動作しないものがあります。その際には管理対象サーバ側でseleinuxを無効にしてください。moduleにselinuxというものがあり、それで無効にできるのですが、これが初回はselinuxが有効になっていると動かないというなんとも悲しい状況になっています。ちなみにselinuxのplaybookの記載は下記の要領になります。
selinuxを有効にする場合

- name: selinux enforcing
  selinux: state=enforcing policy=targeted

seleinuxを無効にする場合

- name: selinux disable
  selinux: state=disable

以上です。お疲れ様でした。