Ansible modules

Python学習【365日チャレンジ!】262日目のマスターU(@Udemy11)です。

最近メルカリでエギング関連のアイテムを物色して散財しまくっています。

お金があるとついついハマっているものにつぎ込んでしまうくせがあるんですよね。

ほんと困りもので、ある程度お金が溜まってくると使わないといけないという強迫観念に襲われるんです。

それで魅力的なものを見つけるといてもたってもいられなくなっちゃうんですよね。

体を休めないといけないとだめだと思いつつ、釣れているときに釣りに行かないと釣れなくなっちゃうという強迫観念も持ち備えているので、ほんと困ったものです。

それではPython学習に入ります。

昨日の復習

昨日は、Ansibleの独自モジュールの作り方を学習しました。

最初から使えるモジュールのことですらしっかりと理解できていない状態で自作モジュールを理解するのは一苦労ですが、こんなことができるんだということを頭の片隅に入れておけば、いざ実践となったときに役立ってくれるかもしれません。

簡単な計算をして、その結果を返すsumモジュールを作成したので、詳細については昨日の記事をごらんください。

今日は、これまでの学習で利用したAnsibleのモジュールについて確認します。

Ansibleモジュール

すでにこれまでの学習で、Ansibleモジュールを使っていますが、なんとなく理解したつもりだったものの、きちんと理解していなかったので、とりあえず、Ansibleモジュールのことを調べてみました。

Ansibleモジュールとは

Ansibleモジュールは、これまでに学習したansible-playbookコマンドで実行可能なスクリプトで、引数を受け取って、処理を実行し、デフォルトでJSON形式の実行結果を返してくれるので、どのプログラミング言語でも扱うことができます。

ちなみにAnsibleで使えるモジュールは公式ドキュメントをのぞいてみるとわかりますがたくさんあるので、全てを覚えることは難しいので、利用頻度の高いものを使いながら覚えていくのが現実的です。

たくさんありすぎるので、これまでの学習で使ったAnsibleモジュールをチェックしてみましょう。

apt

Linuxディストリビューションでapt-getコマンドを実行するモジュールです。

サーバー構築ではPythonライブラリのインストールなどに使いました。

apt_repository

APT(Advanced Package Tool)のレポジトリを追加したり削除したりするモジュールです。

ubuntuにuniverseレポジトリを使いする際に使用しました。

command

リモート先でコマンドを実行するモジュールです。

easy_installpipのインストールがエラーになったので、commandモジュールを使って直接コマンドを実行してインストールしました。

copy

copyモジュールは、cpコマンドを実行するモジュールで、src(source)dest(destination)を使ってファイルをリモート先にコピーします。

srcにはファイル名を記述して、destには別ファイルで定義した変数を使ってリモート先のディレクトリとファイル名を記述しました。

file

fileモジュールはその名のとおり、ファイル操作を行うモジュールで、ファイルやディレクトリの設定や削除をすることができるモジュールです。

アプリ(Pythonファイル)を保存するディレクトリを作り、パーミッションを755に指定しました。

pip

pipコマンドを使ったパッケージのインストールができるモジュールです。

aptモジュールを使ったflaskのインストールに失敗したので、すでにインストールしてあったpipを使ってflaskをインストールしました。

service

serviceモジュールは、serviceコマンドを使ったサービスの起動や停止、再起動や削除などの管理ができるモジュールです。

リモート先のサーバーをsupervisorでログインして使用する際に使いました。

template

templateモジュールは、テンプレートエンジンのjinja2のテンプレートファイルを、src(source)dest(destination)を指定し、ファイルをリモート先にコピーします。

gunicornの実行コマンドを記述したjinja2のファイルを指定してリモート先にコピーしました。

まとめ

公式ドキュメントをごらんになればわかると思いますが、Ansibleモジュールはものすごいたくさんあります。

すべてを理解するのは無理なので、使ったものから使い方を覚えていくといいでしょう。

今回のサーバー構築の自動化で使ったモジュールは8つだけでしたが、使い方をあらためて確認すると、Ansibleモジュールをどのように使えばいいのかが何となくわかるようになります。

なにごとも1回やっただけでは理解することはできないので、何度も繰り返してコードを書いたり復習したりすることが大切です。

触れる回数が多ければ多いほど記憶に定着するので、理解したつもりでも復習するように心がけましょう。

それでは、明日もGood Python!