ansibleのタスクでは各種モジュールを利用して個別のタスクを実行します。
そこで、よく利用するモジュールについて整理します。
とはいっても経験が浅いので順次追加していく予定。
主要なモジュール
モジュール名 | 内容 |
---|---|
apt | Debian系のLinuxディストリビューションでapt-getコマンドを発行する |
copy | ローカルマシンからリモートサーバにファイルを転送する |
file | ファイル(ファイル,リンク, ディレクトリ)を作成 |
template | テンプレートファイルをパースしてリモートサーバに転送する |
service | 特定のサービスを指定した状態にする |
yum | RHEL系のLinuxディストリビューションでyumコマンドを発行する |
モジュールの使用例
apt
aptモジュールの使用例
- name: Install vim
apt: name=vim update_cache=yes
ここではvimのパッケージインストールをキャッシュのアップデートを
行ったうえで実行するという形になっている。
パラメータ名 | 意味 | 記法例 |
---|---|---|
name | パッケージ名 | name=vim |
update_cache | 事前にapt-get updateを実行するか否か | update_cache=yes |
詳細は、
http://docs.ansible.com/ansible/apt_module.html
copy
copyモジュールの使用例
- name: Copy .vimrc
apt: src=files/vimrc dest=~/.vimrc
パラメータ名 | 意味 | 記法例 |
---|---|---|
src | コピー元ファイル名 | src=files/vimrc |
dest | コピー先ファイル名 | dest=~/.vimrc |
file
- name: Create ~/.ssh
file: >
path=~/sample.file
state=file
stateで指定する内容に応じて他のパラメータが変化する。
- stateで指定できる内容
- file
- ファイルを取り扱う
- link
- シンボリックリンクを取り扱う
- directory
- ディレクトリを取り扱う
- file
ほかにもtouch, hard, absentがあるが割愛
template
Jinja2テンプレートエンジンを使ってsrcに指定したファイルをパースし、
destに指定したリモートサーバのディレクトリに出力する。
templateモジュールの使用例
- name: Create my.cnf
template: src=templates/my.cnf.j2 dest=/etc/my.cnf mode=0644
service
RHEL系ディストリビューションでいうserviceコマンド,systemctlコマンドを実行する??
serviceコマンドの使用例
- name: Restart MySQL
service: name=mysql state=restarted
yum
yumコマンドを実行する
yumコマンドの使用例
- name: Install vim
yum: name=vim state=latest
参考情報