ab’s blog

インフラの呟きです。

Ansible Windowsへの接続パラメータをインベントリに書かないでプレイブックに書く方法

目次

はじめに

AnsibleでWindowsを操作するには接続情報をインベントリファイルのグループ変数に書くのですが、それ以外の方法、プレイブックの変数で指定する方法をメモ。

#これはインベントリファイルに書く方法
[windows]
192.168.1.1

#グループ変数で接続情報を記載
[windows:vars]
ansible_user=ansible
ansible_password=password
ansible_port=5986
ansible_connection=winrm
ansible_winrm_server_cert_validation=ignore

プレイブックに書くやりかた

↓のようにプレイブック内で接続パラメータを指定する。インベントリファイルをスッキリしたい人むけ

#sample_win_createUser.yml
---
- hosts: all
  name: Windwosユーザー追加
  vars:
          ansible_user: ansible
          ansible_password: password
          ansible_port: 5986
          ansible_connection: winrm
          ansible_winrm_server_cert_validation: ignore
  tasks:
   - name: testuser追加
     win_user:
      name: testuser
      password: "Password12345"
      groups: ["Remote Desktop Users"]

実行

$ ansible-playbook -i 192.168.1.1, sample_win_createUser.yml

以上

AnsibleでLinuxのユーザーパスワード有効期限を設定する

ansible-galaxyからchageコマンドに相当するロールをもらってユーザパスワードの有効期限を設定します。EPEL版のAnsibleが入った状態での解説になります。

目次

ansible-galaxyでlqueryvg.chageをインストール

 以下コマンドでロールを取得します。インターネットにつながっていることが前提です。

$ su - ansible   ←playbookの実行ユーザ
$ ansible-galaxy  install lqueryvg.chage

インストールが終了したら、念のためリストの一覧を確認しておきます。

$ ansible-galaxy list

# /home/ansible/.ansible/roles
- geerlingguy.jenkins, 4.3.0
- lqueryvg.chage, master   ←chageと出てたらok
# /usr/share/ansible/roles
# /etc/ansible/roles

プレイブック作成

作成例として「testuser」というユーザのパスワード有効期限を設定するプレイブックを作ります。「chage:」を実行するためにはroot権限への昇格が必須なので「become:」入れときます。(今回始めてgalaxy使ったのですが正直マニュアル(readme)みてもよくわからず、動くプレイブック作るのに時間かかりました。galaxy使いであればわかる内容なのだろうか。。その他パラメータはマニュアルを見るとわかる)

#user_password_limit.yml
---
- hosts: all
  become: yes
  roles:
    - role: lqueryvg.chage
  tasks:
    - name: パスワード期限設定
      chage:
        user: testuser  #対象のユーザ
        sp_max: "28"   #有効期限日数
        sp_warn: "7"    #期限の警告を出す日数

プレイブック実行

例として自ホスト(localhost)向けにプレイブックを実行します。

$ su- ansible
$ ansible-playbook -i localhost, user_password_limit.yml --ask-become-pass

実行後、/etc/shadowを見るか$ cat /etc/shadowchageコマンド$ chage -l testuserでパスワードの有効期限が変更されたことをチェックしておきます。

以上

Windows用zabbix-agentをサイレントインストールする

msiのzabbix-agentインストールプログラムをコマンドラインで非GUIのインストールします。

目次

インストーラーダウンロード

今回はzabbixのダウンロードサイトから以下のインストーラを落としてc:\tmpフォルダ配下に保管します。

zabbix_agent-6.0.4-windows-amd64-openssl.msi

コマンド実行

コマンドプロンプトを管理者権限で実行し、以下のコマンドを打ちます。(今回はインストールに最低限必要なオプション「SERVER=127.0.0.1」を付与していますが他にも「SERVERACTIVE=」などのオプションがあり、それを追記すればzabbix_agent.confの設定を編集できます。他のオプションはこちらを参考

> cd C:\tmp
> C:\Windows\system32\msiexec.exe /i zabbix_agent-6.0.4-windows-amd64-openssl.msi SERVER=127.0.0.1 /qn

ログを取りたいときは、「 /l* [ログファイル名] 」をつけます。インストールが成功したか失敗したかがわかります。
> C:\Windows\system32\msiexec.exe /i zabbix_agent-6.0.4-windows-amd64-openssl.msi SERVER=127.0.0.1 /qn /l* install.log

インストールが成功してしばらくするとプログラム一覧の中に「Zabbix Agent(64bit)」が出てきます。

zabbix-agent

以上