ゆるい感じのプログラムを書きたい。

プログラムの敷居を下げて、多くの人が開発出来るように色々書いていきます!

【モジュールの使い方】service

機能

serviceモジュールを使用することで、hostsで指定したサーバで以下のような操作を実施できる

  • サービスのstart/stop/restart/reload
  • サービスのenable化/disable化

使用例

サービス起動及び自動起動設定

  • nginxサービスを起動させ、enable(有効状態)とする
- hosts: all
  become: yes
  tasks:
    - name: Strat and enable nginx
      service :
        name: nginx
        state: started
        enable: yes


主なパラメータ

パラメータ 必須 デフォルト値 選択肢 説明
name サービスの名前
enable yes/no 起動時にサービスを開始するのか設定
yes:enable(有効)状態
no:disable(無効)状態
注:stateの設定とenableの設定どちらかの1つの設定が必須
state reloaded
restarted
started
stopped
サービスの操作内容を指定
注:stateの設定とenableの設定どちらかの1つの設定が必須
選択したinitシステムが正常に動作しない場合でも、サービスが開始されて無ければ「reloaded」によってサービスが開始されることに注意してください。


全パラメータ

パラメータ 必須 デフォルト値 選択肢 説明
arguments コマンドラインで提供されるつい引数
systemdでリモートホストを使用している間、この設定は無視されます。
エイリアス:args
enable yes/no 起動時にサービスを開始するのか設定
yes:enable(有効)状態
no:disable(無効)状態
注:stateの設定とenableの設定どちらかの1つの設定が必須
name サービスの名前
pattern serviceがstatusコマンドで応答しない場合:ステータス結果の代用としてpsコマンドの出力が表示されるように、検索するsubstringに名前を付けます。
文字列が見つかった場合:サービスが開始されたとみなされる
systemdでリモートホストを使用している間、この設定は無視されます。
runlevel "default" OpenRC initスクリプト(Gentooなど)の場合のみ
このサービスが属するrunlevel
systemdでリモートホストを使用している間、この設定は無視されます。
sleep restartの場合、stopコマンドとstart開始コマンドの間にこの数秒間sleepします
これは、プロセスを停止の通知直後に終了する、動作の悪いinitスクリプトを回避するのに役に立つ
すべてのサービスマネージャがスリープをサポートしているわけではありません。
systemdを使用する場合、この設定は無視されます。
state reloaded
restarted
started
stopped
サービスの操作内容を指定
注:stateの設定とenableの設定どちらかの1つの設定が必須
選択したinitシステムが正常に動作しない場合でも、サービスが開始されて無ければ「reloaded」によってサービスが開始されることに注意してください。
use "auto" serviceModuleが実際にシステム固有のモジュールを使用します。
通常は自動検出は、この設定により特定のモジュールを強制できます
通常、「ansible_service_mgr」ファクトの値を使用し、一致するものが見つからない場合は古い「service」モジュールにフォールバックします。


ドキュメント

【Ansible Documentation】Service Template

参考サイト

matsublog Ansible:serviceモジュールについて

【モジュールの使い方】command

機能

commandモジュールを使用することで、hostsで指定したサーバで以下のような操作を実施できる

■commandモジュールの特徴 + shellを通さない + 環境変数を読めない + &,パイプ,リダイレクトの利用が不可 + Shellを通さないのでユーザ環境の影響を受けにくい

■コマンド実行とべき等性に関する留意点 + 実行するコマンドによってはべき等性が保証できない + Ansibleシステムでは、あるべき「状態」を設計するというのが基本的
コマンド実行については実行後の状態が明確に決まらない場合がある。

冪等性(べきとうせい、idempotency, idempotence)とは

同じ操作を何度繰り返しても、同じ結果が得られるという性質です。 べき等性がある操作(idempotent operation)は、1回操作した場合の結果と、2回以上操作した場合の結果は同じになります。

使用例

commandによるテキストファイルのコピーを実行

  • /root/txt_dir/test.txtを/root/txt_dir/test2.txtとしてコピーする
- hosts: all
  become: yes
  tasks:
    - name: command test
      command :
        cmd: 'cp -p test.txt test2.txt' 
        chdir: /root/txt_dir/

注意点
commandモジュールでcpコマンドを実行する場合 以下の条件に該当する + モジュールのcreateオプションを使用しない場合 + createオプションを使用し、かつcreateオプションで指定したパスが存在しない場合

この場合は、cpのコピー先ファイルが存在している場合でも 強制的に上書きされるため注意してください。
上書きをさせたくない場合 commandモジュールのcreateオプションにコピー先のパスを指定してください。

主なパラメータ

パラメータ 必須 デフォルト値 選択肢 説明
cmd 実行するコマンド
creates ファイルパスまたはglobパターンを指定
指定したファイルが存在する場合はコマンドを実行しない
chdir コマンド実行前にカレントディレクトリを変更したい場合はパスを指定


全パラメータ

パラメータ 必須 デフォルト値 選択肢 説明
argv コマンドを文字列ではなくリストとして渡す
chdir コマンド実行前にカレントディレクトリを変更したい場合はパスを指定
cmd 実行するコマンド
creates ファイルパスまたはglobパターンを指定
指定したファイルが存在する場合はコマンドを実行しない
free_form 実行するコマンドの指定free_formというオプション名はつけず
removes ファイル名が存在しない場合コマンドを実行しない
stdin コマンドのstdinを指定された値に直接設定
stdin_add_newline yes/no yes stdinデータに改行を追加するのか設定
strip_empty_ends yes/no yes 結果のstdout/stderrの末尾から空行を削除します
warm yes/no no タスク警告を有効or無効設定
この機能は非推奨で、2.14で削除される予定です。


戻り値

Key Returned 説明
cmd always タスクが実行したコマンド
Sample:
['echo', 'hello']
delta always コマンド実行デルタ時間
Sample:
0:00:00.001529
end always コマンドの実行終了時刻
Sample:
2017-09-29 22:03:48.084657
msg always changed
Sample:
True
rc always コマンドのリターンコード(0は成功を意味する)
strat always コマンドの実行開始時刻
Sample:
2017-09-29 22:03:48.083128
stderr always コマンドのエラー内容
Sample:
ls: cannot access foo: No such file or directory
stderr_lines always コマンドのエラー内容を行単位で分割して返却
Sample:
[{"u'ls cannot access foo": "No such file or directory'"}, "u'ls …'"]
stdout always コマンドの実行結果を出力
Sample:
Clustering node rabbit@slave1 with rabbit@master …
stdout_lines always コマンドの実行結果を行単位で分割して返却
Sample:
["u'Clustering node rabbit@slave1 with rabbit@master …'"]


ドキュメント

【Ansible Documentation】Command Template

参考サイト

matsublog Ansible:commandモジュールについて

【RunaBook.dev】Module command

【モジュールの使い方】Template

機能

templateモジュールを使用することで、Ansibleマシンのローカルに存在する
テンプレートファイルをhostsで指定したサーバへ転送することが出来る。

  • テンプレートファイル内では変数を使用可能
  • テンプレートファイル内ではjinja2というpython用のテンプレートエンジンライブラリを使用可能 ※jinja2を使用すると複雑になるので使わないほうがいいかも

使用例

  • 転送元(クライアントローカル側):/root/copyFile/index.tpl
  • 転送先(指定したサーバ側):/root/sample.conf
  • 所有ユーザ、所有グループ、権限:root,root,0664

/root/test.tpl

test01
test02
test03
{{ sample_add_var }}

※{{ sample_add_var }}の部分が変数

playbook.yml

- hosts: group1
  become: yes
  vars:
    - sample_add_var: test04
  tasks:
  - name: template test
    template:
      src: /root/copyFile/index.tpl
      dest: /root/sample.conf
      owner: root
      group: root
      mode: 0664

Ansible実行後の指定したサーバ側の'/home/centos/sample.conf'ファイル内容

test01
test02
test03
test04

テンプレートファイル'test.tpl'の{{ sample_add_var }}の部分がtest04に置換されたファイルになる。


主なパラメータ

パラメータ 必須 デフォルト値 選択肢 説明
src ローカル環境のファイル/ディレクトリパス(転送元パス)
ディレクトリの場合
・パスが"/"で終わる場合ディレクトリの中身のみ転送する
・パスの最後が"/"でない場合ディレクトリごと転送する。
dest hostsで指定したサーバのパス(転送先パス)
srcがディレクトリの場合、destもディレクトにする必要がある
owner 転送後のファイル/ディレクトリの所有ユーザ
group 転送後のファイル/ディレクトリの所有グループ
mode 転送後のファイル/ディレクトリの権限
例:"0664"、"u=rw,g=r,o=r"
force yes yes
no
yes:destが存在する場合、内容が異なればsrcで置換
no:destが存在しない場合のみsrcを転送


全パラメータ

パラメータ 必須 デフォルト値 選択肢 説明
attributes 結果として得られるファイルやディレクトリが持つべき属性
サポートされているフラグを取得するには、ターゲットシステムのchattrのマニュアルページを参照
この文字列には、lsattrによって表示されるものと同じ順序で属性を含める必要があります。
「=」演算子がデフォルトで、それ以外の場合は「+」または「-」演算子を文字列に含める必要がある
エイリアス:attr
backup no yes
no
タイムスタンプ情報を含むバックアップファイルを作成して、誤って上書きしてしまった場合に元のファイルを取り戻すことができるようにします。
block_end_string "%}" ブロックの終わりを示す文字列
block_start_string "%}" ブロックの開始を示す文字列
comment_end_string メントステートメントの終わりを示す文字列
comment_start_string メントステートメントの開始を示す文字列
dest hostsで指定したサーバのパス(転送先パス)
srcがディレクトリの場合、destもディレクトにする必要がある
follow no yes
no
シンボリックリンクをたどるかどうかを決定します
yesに設定すると、シンボリックリンクが存在する場合はそれから辿れる。
noに設定すると、シンボリックリンクは辿られません。
Ansible2.4より前では、これはyesとしてハードコーディングされていました。
force yse yes
no
yes:destが存在する場合、内容が異なればsrcで置換
no:destが存在しない場合のみsrcを転送
group 転送後のファイル/ディレクトリの所有グループ
lstrip_blocks no yes
no
先頭のスペースとタブを削除するタイミングを決定します。
yesに設定すると、先頭のスペースとタブが行頭からブロックまで取り除かれます。
mode 転送後のファイル/ディレクトリの権限
例:"0664"、"u=rw,g=r,o=r"
newline_sequence \n \n
\r
\r\n
テンプレートファイルに使用する改行シーケンスを指定します。
output_encoding utf-8 destで定義されたテンプレートファイルの書き込みに使用されるエンコーディングをオーバライドします。
デフォルトではutf-8ですが、Pythonでサポートされている任意のエンコーディングを使用できます。
ソーステンプレートファイルは、均質性のために常に、utf-8を使用してエンコードする必要があります。
owner 転送後のファイル/ディレクトリの所有ユーザ
selevel SELinuxファイルコンテキストのレベル部分
MLS/MCS属性であり、rangeとも呼ばれる
_defaultに設定すると、ポリシーのlevel部分が使用可能な場合はそれが使用される
serole SELinuxファイルコンテキストのレベル部分
_defaultに設定すると、ポリシーのrole部分が使用可能な場合はそれが使用される
settype SELinuxファイルコンテキストのレベル部分
_defaultに設定すると、ポリシーのtype部分が使用可能な場合はそれが使用される
seuser SELinuxファイルコンテキストのレベル部分
デフォルトでは、該当する場合はsystemポリシーを使用します
_defaultに設定すると、ポリシーのuser部分が使用可能な場合はそれが使用される
src ローカル環境のファイル/ディレクトリパス(転送元パス)
ディレクトリの場合
・パスが"/"で終わる場合ディレクトリの中身のみ転送する
・パスの最後が"/"でない場合ディレクトリごと転送する。
trim_blocks yes yes
no
ブロックからいつ改行を削除するかを決定します。
yesに設定すると、ブロックの後の最初の改行が削除されます(変数タグではなくブロックです)
unsafe_writes no yes
no
ターゲットファイルシステムオブジェクトからのデータの破損や一貫性のない読み取りを防ぐために、アトミック操作を使用するタイミングに影響を与えます。

デフォルトでは、このモジュールをアトミック操作を使用して、データの破損やターゲットファイルシステムオブジェクトからの一貫性のない読み取りを防ぎますが、これを防ぐ方法でシステムが構成されているか、単に壊れている場合があります。
1つの例は、Dockerによってマウントされたファイルシステムオブジェクトです。
これは、コンテナ内からアトミックに更新することは出来ず、安全でない方法のみで書き込むことが出来ます。

このオプションにより、Ansibleはアトミック操作が失敗した時にファイルシステムオブジェクトを更新する安全でない方法にフォールバックできます。(ただし、Ansibleに安全でない書き込みを強制することはありません)
重要!安全ではない書き込みは競合状態の影響を受けやすく、データの破損につながる可能性があります。
validate 更新されたファイルを最終的に宛先にコピーする前に実行する検証コマンド
検証には一時ファイルパスが使用され、次の例のように存在する必要がある%sを介して渡されます。
また、コマンドは安全に渡されるため、展開やパイプなどのシェル機能は機能しません。
このオプションが提供するものよりも複雑な検証を処理する方法の例については「複雑な構成の検証」を参照してください。
variable_end_string "}}" printステートメントの終わりを示す文字列
variable_start_string "{{}}" printステートメントの開始を示す文字列

シンボリックリンク シンボリックリンクの説明を記載

アトミック操作 他からの割り込みがない状態にすること


ドキュメント

【Ansible Documentation】Module Template

参考サイト

matsublog Ansible:templateモジュールについて

【モジュールの使い方】unarchive

機能

unarchiveモジュールを使用することで
次のような操作を実施できます。

  • Ansibleマシン側ローカルにある圧縮ファイルをhostsで指定した
    転送先サーバ上で解凍する。
  • hostsで指定したサーバに存在する圧縮ファイを解凍する

使用例

hostsで指定したサーバ側ファイルの転送・解凍

  • Ansibleがインストールされている端末のローカル環境にある/root/nginx-1.20.2.tar.gz
    hostsで指定したサーバの/rootにて解凍する

playbook.yml

- hosts: all
  become: yes
  tasks:
  - name: template test
    unarchive:
      src: /root/nginx-1.20.2.tar.gz
      dest: /root

追加オプションを使用してアーカイブを解除する。

playbook.yml

- hosts: all
  become: yes
  tasks:
  - name: template test
    unarchive:
      src: /tmp/foo.zip
      dest: /usr/local/bin
      extra_opts:
        - --transform
        - s/^xxx/yyy/

管理対象側のファイルの解凍

  1. 次のURLからnginxパッケージを/tmpにダウンロードする
    http://nginx.org/download/nginx-1.20.2.tar.gz
  2. /tmp/nginx-1.20.2.tar.gzを/rootに解凍する。

playbook.yml

- hosts: all
  become: yes
  tasks:
    - name: download nginx
      get_url:
        url: http://nginx.org/download/nginx-1.20.2.tar.gz
        dest: /tmp
    - name: unarchive nginx
      unarchive:
        src: /tmp/nginx-1.20.2.tar.gz
        dest: /root
        remote_src: yes


主なパラメータ

パラメータ 必須 デフォルト値 選択肢 説明
src 解凍対象の圧縮ファイルの絶対パス
dest 解凍後ファイルの保存先ディレクトリの絶対パス
owner 解凍後ファイルの所有者
group 解凍後ファイルの所有グループ
mode 解凍後ファイルの権限
例:"0664","u=rw,g=r,o=r"
remote_src no yes
no
管理対象機器側に存在する
圧縮ファイルを対象とする場合はyesとする


全パラメータ

パラメータ 必須 デフォルト値 選択肢 説明
attributes 結果として得られるファイルやディレクトリが持つべき属性
サポートされているフラグを取得するには、ターゲットシステムのchattrのマニュアルページを参照
この文字列には、lsattrによって表示されるものと同じ順序で属性を含める必要があります。
「=」演算子がデフォルトで、それ以外の場合は「+」または「-」演算子を文字列に含める必要がある
エイリアス:attr
copy yes yes
no
yesの場合:ファイルはローカルコントローラから管理下の(リモート)にコピーされます。
プラグインは管理下のマシンでsrcアーカイブを探します。
このオプションは廃止され「remote_src」が採用されました。
このパラメータは「remote_src」と一緒に使用できません。
creates 指定した絶対パス(ファイルまたはディレクトリ)がすでに存在する場合、このステップは実行されません
decrypt yes yes
no
このプションは、Vaultを使用したソースファイルの自動復号化を制御します
dest 解凍後ファイルの保存先ディレクトリの絶対パス
exclude アーカイブ解除アクションから除外するディレクトリとファイルのエントリをリストアップ
このパラメータは「include」と一緒に使用できません。
extra_opts "" 配列を渡して追加のオプションを指定
スペースで区切られた各コマンドらいのプションは、配列の新しい要素でなければなりません。
例を参照
複数の要素を持つコマンドラインオプションは、配列内で複数行、各要素ごとに1行ずつ使用する必要がある。
group 転送後ファイルの所有グループ
include アーカイブから抽出したいディレクトリやファイルのエントリリス
ここにきさいされたファイルのみが抽出されます。
このパラメータは「excute」と一緒に使用できません。
keep_newer no yes
no
アーカイブのファイルより新しいファイルに置き換えない
list_files no yes
no
True設定:tarballに含まれるファイルリストを返却
mode 転送後のファイル/ディレクトリの権限
例:"0664"、"u=rw,g=r,o=r"
owner 転送後ファイルの所有者
remote_src no yes
no
hostsで指定したサーバに存在する圧縮ファイルを対象
とする場合はyesとする
selevel SELinuxファイルコンテキストのレベル部分
MLS/MCS属性であり、rangeとも呼ばれる
_defaultに設定すると、ポリシーのlevel部分が使用可能な場合はそれが使用される
serole SELinuxファイルコンテキストのレベル部分
_defaultに設定すると、ポリシーのrole部分が使用可能な場合はそれが使用される
settype SELinuxファイルコンテキストのレベル部分
_defaultに設定すると、ポリシーのtype部分が使用可能な場合はそれが使用される
seuser SELinuxファイルコンテキストのレベル部分
デフォルトでは、該当する場合はsystemポリシーを使用します
_defaultに設定すると、ポリシーのuser部分が使用可能な場合はそれが使用される
src 解凍対象の圧縮ファイルの絶対パス
unsafe_writes no yes
no
このオプションを使用すると、アトミック操作が失敗した場合にAnsibleがファイル更新する際、安全ではない方法でフォールバックする事が出来ます。
(但し、Ansibleに安全ではない書き込みを強制的に実行させることはありません)
重要:安全でない書き込みは、競合条件の対象となり、データの破損につながる可能性がある
validate_certs yes yes
no
ファイルのソースとしてhttpsURLを利用している場合のみ適用
自己証明書を使用する個人的に制御されるサイトでは使用されないように設定する必要があります
ver2.2より前ではyesの設定のように機能していました。

アトミック操作 他からの割り込みがない状態にすること

フォールバック 機能や性能を制限して動かすこと


戻り値

Key Type Returned 説明
dest string always 宛先ディレクトリへのパス
Sample:
/opt/software
files list/elements=string list_filesがtrueの場合 アーカイブ内のすべてのファイルのリスト
Sample:["file1","file2"]
gid integer always 宛先ディレクトリを所有するグループの数値ID
Sample:
1000
group string always 宛先ディレクトリを所有するグループの名前
Sample:
librarians
handler string always アーカイブの展開・解凍に使用するアーカイブソフトのハンドラ
Sample:
TgzArchive
mode string always 送信先ディレクトリの8進数のパーミッションを表す文字列
Sample:
0755
owner string always 宛先ディレクトリを所有するユーザの名前
Sample:
paul
size integer always 送信先ディレクトリのサイズをバイト単位で指定
ディレクトリに含まれるファイルやサブディレクトリのサイズは含みません
Sample:
36
src string always ソースアーカイブのパス
srcがリモートWebURLである場合、またはローカルのAnsibleコントローラからのものである場合、これはダウンロードが保存された一時的な場所を返します。
Sample:
/home/paul/test.tar.gz
state string always 作業対象のディレクトリ名
Sample:
directory
uid integer always 作業対象のディレクトリを所有するユーザの数値ID
Sample:
1000


ドキュメント

【Ansible Documentation】Module unarchive

参考サイト

matsublog Ansible:narchiveモジュールについて

【モジュールの使い方】user

機能

userモジュールを使用することで、hostsで指定したサーバで以下の操作が実施できる

  • ユーザの追加/削除
  • ユーザのパスワード設定
  • ユーザのホームディレクトリ設定
  • ユーザのグループ設定
  • ユーザのログインシェル設定

使用例

  • 使用例 ユーザの新規作成
- hosts: all
  become: yes
  tasks:
    - name: Add user
      user :
        name: hoge
        state: present
        password: "{{ 'hogepasswd' | password_hash('sha521')}}"
        createhome: yes

passwordではハッシュ化後のパスワードを指定する必要があり、以下のように設定すると
passwordをハッシュ化した値を入力値とする事が出来る。

password: "{{ 'hogepasswd' | password_hash('sha521')}}"


  • 使用例 サブグループ設定
- hosts: all
  become: yes
  tasks:
    - name: Add user
      user :
        name: hoge
        groups: wheel, testuser

groupsの値として追加したいサブグループだけを記載すると
記載したサブグループだけに所属する状態になるので注意してください。

  • 使用例 ユーザの削除
- hosts: all
  become: yes
  tasks:
    - name: Delete user
      user :
        name: hoge
        groups: absent


主なパラメータ

パラメータ 必須 デフォルト値 選択肢 説明
state present absent
present
absent→ユーザが存在しない状態
ユーザが存在する状態
password ハッシュ化後のパスワードを指定
createhome yes yes
no
ホームディレクトリが存在しない場合に作成する
home ホームディレクトリを設定する場合に指定
groups 所属するサブグループを「,」区切りをすべて指定
shell ユーザのシェルを指定


全パラメータ

パラメータ 必須 デフォルト値 選択肢 説明
append no yes
no
yes:指定されたグループを追加
no:指定されたグループのみ追加され、他のすべてのグループから削除
authorizaition ユーザの認証を設定します
カンマ区切りで複数の認証を設定可能
現在、Illumos/Solarisでサポートされてます。
他のプラットフォームで使用しても何も起こりません
cooment ユーザアカウントにコメントを設定
create_home yes yes
no
ユーザアカウントが作成されたかホームディレクトリが存在しない時にホームディレクトリを作成
expires エポックでのユーザーの有効期限
これをサポートしていないプラットフォームでは無視されます
現在、GNU/LinuxFreeBSD、およびDragonFlyBSDでサポートされています
Ansible 2.6以降では、負の値を指定することで有効期限を削除できます。現在、GNU/LinuxおよびFreeBSDでサポートされています。
force no yes
no
『state=absent』と一緒に設定した場合、『userdel --force』と同じ動作をする。
generate_ssh_key no yes
no
SSH鍵を生成する。既存のSSH鍵は上書きされない。
group メイングループの名前を指定
groups サブグループをカンマ区切りで指定する。『groups=』(空文字列)を指定するとサブグループを削除する。
hidden yes yse
no
macOSのみ、オプションでログインウィンドウとシステム環境設定からユーザーを非表示にします。
システムオプションが使用されている場合、デフォルトはyesになります。
home ユーザアカウントのホームディレクトリを指定
local no yes
no
ローカルユーザを造作する場合(つまり、useraddではなくluseraddを使用する場合)に集中認証を使用する環境で役に立ちます。
これにより、コマンドを呼び出す前に、既存おアカウントの/etc/passwdがチェックされます。
ローカルアカウントデータが/etc/passwdがチェックされます。,
ローカルアカウントデータが/etc/passwd以外の場所に存在する場合、この設定は機能しません。
これには、上記のコマンドとetc/passwdがターゲットホストに存在する必要があり、存在しない場合は、致命的なエラーになります。
login_class FreeBSD, OpenBSD, NetBSDのログインクラスを設定
move_home no yes
no
『yes』を指定すると、『home=』で指定されたディレクトリがまだ存在しなくてもホームディレクトリを移動
name 作成・変更・削除するユーザアカウントを指定
non_unique no yes
no
オプションで、-uオプションとともに使用すると、このオプションを使用して、ユーザーIDを一意でない値に変更できます。
password パスワードを設定
password_expire_max パスワード変更間の最大日数
Linuxでのみサポート
password_expire_min パスワード変更間の最小日数
Linuxでのみサポート
password_expire_lock yes
no
パスワードをロックします(usermod -L,usermod -U,pw lock)
実装はプラットフォームによって異なります。このオプションは、ユーザーが他の方法を使用してログインできないことを常に意味するわけではありません。
このオプションはユーザーを無効にするのではなく、パスワードをロックするだけです。
False現在ロックされているパスワードのロックを解除するには、これをに設定する必要があります。このパラメーターがなくても、パスワードのロックは解除されません。
現在、LinuxFreeBSD、DragonFlyBSD、NetBSDOpenBSDでサポートされています。
profile ユーザのプロフィールを設定
他のプラットフォームで使用しても何も起こりません
カンマ区切りを使用して複数の役割を設定可能
全ての役割を削除するにはprofile=""を使用
現在、Illumos/Solarisでサポートされています。
rmove no yes
no
『state=absent』と一緒に設定した場合
『userdel --remove』と同じ動作をする。
role ユーザの役割を設定
他のプラットフォームで使用しても何も起こりません
カンマ区切りを使用して複数の役割を設定可能
全ての役割を削除するにはrole=""を使用
現在、Illumos/Solarisでサポートされています。
seuser selinux対応システムでseuserタイプ(user_u)を設定します
shell ユーザシェルを設定
skelton オプションで、ホームスケルトンディレクトリを設定
create_homeオプション必須
ssh_key_bits ssh-keygenによって設定されたデフォルト 作成するSSHキーのビット数を指定
ssh_key_comment SSHキーのコメントを定義
sshe_key_file SSH鍵のファイル名の指定
ssh_key_passphase SSH鍵のパスワードを設定する。
パスワードが設定されない場合、SSH鍵はパスワードを持たない。
ssh_key_type rsa SSH鍵のタイプを指定する。
利用可能なSSH鍵のタイプは、ホスト上での実装に依存する。
state present present
absent
present:存在する(無ければ作成)
absent:存在しない(あったら削除)
system no yes
no
『yes』を指定するとユーザアカウントはシステムアカウントになる。この設定は既存ユーザアカウントの変更はできない。
uid LinuxのユーザIDを指定
umask ユーザーのumaskを設定
他のプラットフォームで使用しても何も起こりません
現在Linuxでサポート
ローカルが省略されているか、Falseが必要
update_password always always
on_create
always:必ずパスワードを更新する。
on_create:新しく作成された時にパスワードを設定する。


戻り値

Key Type Returned 説明
append boolean state=presentの設定でユーザ存在する場合 ユーザをグループに追加したかどうか
Sample:
true
comment string ユーザが存在す場合 passwdファイルのコメント部分。通常はユーザ名が返却
Sample:
Agent Smith
create_home boolean ユーザが存在せず、チェックモードでない場合 ホームディレクトリを作成するかどうか
Sample:
True
force boolean state=absentの設定でユーザ存在する場合 ユーザをグループに追加したかどうか |ユーザアカウントが強制的に削除されたかどうか
group integer ユーザが存在する場合 プライマリユーザグループID
Sample:
1001
groups integer state=presentの設定でグループが存在する場合
Sample:
chrony,apache
ユーザが所属しているグループの一覧
home string state=presentの設定 ユーザのホームディレクトリパス
Sample:
/home/asmith
move_home boolean state=presentの設定でユーザ存在する場合 既存のホームディレクトリを移動するかどうか
name steing always ユーザアカウント名
Sample:
asmith
pasword string state=presentの設定でパスワードがから出ない場合 パスワードのマスクされた値
Samole:
NOT_LOGGING_PASSWORD
password_expire_max integer ユーザが存在する場合 パスワードの有効期限の最大日数
Sample:
20
password_expire_min integer ユーザが存在する場合 パスワード変更の最小日数
Sample:
20
remove boolean state=absentの設定でユーザ存在する場合 ユーザーアカウントを削除するかどうか
Sample:
True
shell string state=presentの設定 ユーザのログインシェル
Sample:
/bin/bash
ssh_fingerprint string generate_ssh_keyがtrueの場合 生成されたSSHキーのフィンガープリント
Sample:
2048 SHA256:aYNHYHYcyVm87Igh0IMEDMbvvW0QDlRQfE0aJugp684ko8 ansible-generated on host (RSA)
ssh_key_file string generate_ssh_keyがtrueの場合 生成されたSSH秘密鍵ファイルのパス
Sample:
/home/asmith/.ssh/id_rsa
ssh_public_key string generate_ssh_keyがtrueの場合 生成されたSSH公開鍵ファイル
Sample:
'SSH-RSA AAAAB3NzaC1yc2EAAAADAQABAAABAQC95opt4SPEC06tOYsJQJIuN23BbLMGmYo8ysVZQc4h2DZE9ugbjWWGS1 / pweUGjVstgzMkBEeBCByaEf / RJKNecKRPeGd2Bw9DCj / bn5Z6rGfNENKBmo 618mUJBvdlEgea96QGjOwSB7 / gmonduC7gsWDMNcOdSE3wJMTim4lddiBx4RgC9yXsJ6Tkz9BHD73MXPpT5ETnse + A3fw3IGVSjaueVnlUyUmOBf7fzmZbhlFVXf2Zi2rFTXqvbdGHKkzpw1U8eB8xFPP7y d5u1u0e6Acju / 8aZ / l17IDFiLke5IzlqIMRTEbDwLNeO84YQKWTm9fODHzhYe0yvxqLiK07 ansible、生成されたホスト上で'
stderr string 実行したコマンドで標準エラーが返ってきた場合 実行中のコマンドの標準エラー
Sample:
Group wheels does not exist
stdout string 実行したコマンドで標準出力が返ってくる場合 実行中のコマンドの標準出力
system boolean システムがモジュールに渡され、アカウントが存在しない場合 そのアカウントがシステムアカウントであるかどうか
Sample:
True
uid integer uidがモジュールに渡されたとき ユーザーアカウントのユーザーID
Sample:
1044


ドキュメント

【Ansible Documentation】Module user

参考サイト

【RunaBook.dev】Module user

【Qiita】userモジュール

matsublog Ansible:userモジュールについて