#はじめに
今年は前半よくAnsibleを触った、主に研修で
いろいろなモジュールを使ったので
なかでもよく使ったモジュールをランキング形式でまとめてみました。
細かく回数などは数えてない、つまりよくつかった(とおもう)モジュールベスト4
4位から発表と思ったが長ったらしくなりそうなので1位から発表
playbookのサンプルとともに紹介していきます。
ちなみにAnsibleのバージョンは2.6
##第1位 debug
でしょうね。。。
きっと皆さんもよくお世話になってると思います。
サンプル
---
- hosts: juniper
gather_facts: no
connection: local
tasks:
- name: show version
junos_command:
commands: show version
provider: "{{ cli }}"
register: result
- debug: msg="{{ result }}" ←ココ!
##第2位 vsphere_guest
vCenter入っていないESXiでVM作成したい!と思ったらこのモジュール
入っている場合は第3位で紹介するモジュールを使うほうがよい(2.9でvsphere_guestなくなるので)
Deployするまでしかやってくれません、、つまりOSのインストールは手作業(そんな馬鹿な。。。)
なのでキックスタートを使ったインストールで何とか自動デプロイを実現させました。
※実は今年の8月頃記事書いてます
サンプル
vsphere_guest:
vcenter_hostname: "{{ hostname }}" ←ESXiのIPアドレス
username: "{{ username }}" ←ESXiログイン時のユーザ名
password: "{{ password }}" ←ESXiログイン時のパスワード
guest: "{{ guest }}" ←作成するVMの名前
state: powered_on ←作ったVMステータス設定(今回はパワーオン)
validate_certs: no ←初回SSH接続時の確認をとばす
esxi:
datacenter: ha-datacenter ←スタンドアロンの場合固定値
hostname: localhost.localdomain ←ESXiに設定しているホスト名
vm_extra_config:
notes: This is a test VM
vm_disk:
disk1:
size_gb: "{{ size_gb }}"
type: thin
datastore: datastore1
vm_nic:
nic1:
type: vmxnet3
network: VM Network 1
network_type: standard
nic2:
type: vmxnet3
network: VM Network
network_type: standard
nic3:
type: vmxnet3
network: VM Network 2
network_type: standard
vm_hardware:
memory_mb: "{{ memory_mb }}"
num_cpus: "{{ num_cpus }}"
osid: rhel6_64Guest
scsi: paravirtual
vm_cdrom:
type: "iso"
iso_path: "{{ iso_path }}"
##第3位 vmware_guest
内部的にはvCenterをAPIで操作して動いているようです
つまりvCenterがない環境では使えないということ。。。
templateからのVM作成もできるのでこちらのほうが優秀かと思っています。
サンプル
- name: Deploy Linux VM
vmware_guest:
hostname: "{{ vcenter_ip }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
validate_certs: False
folder: /hogehoge
name: "{{ vm_name }}"
state: poweredon
template: "{{ template }}"
disk:
- size_gb: "{{ disk_size }}"
type: thin
datastore: "{{ datestore }}"
hardware:
memory_mb: "{{ memory_size }}"
num_cpus: "{{ cpu_num }}"
num_cpu_cores_per_socket: 3
scsi: paravirtual
memory_reservation: 512
memory_reservation_lock: True
mem_limit: 8096
mem_reservation: 4096
cpu_limit: 8096
cpu_reservation: 4096
max_connections: 5
hotadd_cpu: True
hotremove_cpu: True
hotadd_memory: False
version: 12 # Hardware version of virtual machine
networks:
- name: VM Network
ip: "{{ ip }}"
netmask: "{{ mask }}"
gateway: "{{ gateway }}"
wait_for_ip_address: yes
delegate_to: localhost
register: deploy
when: os == "linux"
実行結果
##第4位 junos_command
junosにコマンド(showなどの確認系)を送りつけるモジュール
vSRXが無償でできる関係でよくお世話になりました。
PythonのスクリプトでPolicyをCSVから生成してjunos_configで時間になったら変更する!
というものを作ったのもよい思い出です。
その時の確認でよく使いました。。
サンプル
---
- hosts: juniper
gather_facts: no
connection: local
tasks:
- name: show version
junos_command:
commands: show version
provider: "{{ cli }}"
register: result
- debug: msg="{{ result }}"
#まとめ
上半期のみでしたが今年はいろいろなモジュールを触りました、
紹介はできなかったけどBIG-IPのモジュールやIOSのモジュール、そしてあまり使ってなかったサーバ系のモジュール(サーバ系というより基本的なコマンド)もWindowsも試したなぁ
動いて感動していた時期はそろそろ終わり、運用を意識した設計やモジュールを組み合わせて想定通りに作り上げるために考えなくてはいけなくなってきました。
そこは来年の課題として・・・。
ぜひみなさんのランキングも知りたいものです、
よく使ったモジュールを振り返るとどんな一年だったかわかるかもしれませんね!(適当)
来年触りたいモジュールはずばり
ACIのモジュールです。
記事も書くぞ!