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/shadow
、chageコマンド$ chage -l testuser
でパスワードの有効期限が変更されたことをチェックしておきます。
以上