【モジュールの使い方】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
参考サイト
【モジュールの使い方】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
参考サイト
【モジュールの使い方】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
参考サイト
【モジュールの使い方】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/
管理対象側のファイルの解凍
- 次のURLからnginxパッケージを
/tmp
にダウンロードする
http://nginx.org/download/nginx-1.20.2.tar.gz - /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: |
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
参考サイト
【モジュールの使い方】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/Linux、FreeBSD、および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現在ロックされているパスワードのロックを解除するには、これをに設定する必要があります。このパラメーターがなくても、パスワードのロックは解除されません。 現在、Linux、FreeBSD、DragonFlyBSD、NetBSD、OpenBSDでサポートされています。 |
||
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