zoukankan      html  css  js  c++  java
  • ansible-user模块使用方法

    应用

    管理远程主机上的用户,比如创建用户、修改用户、删除用户、为用户创建密钥对等操作。

    参数

    • user:指定要操作的用户名称
    • uid:指定用户的uid
    • comment:指定用户的注释信息
    • expires:指定用户的的过期时间,相当于设置/etc/shadow文件中的第8列
    • shell:指定用户的默认shell
    • group:指定用户的基本组
    • groups:指定用户的附加组,新加时会覆盖原有的附加组,默认append=no
    • append:配合groups使用,在原有附加组的基础上追加组,append=yes
    • state present|absent:默认present,表示添加用户或需要用户存在;absent表示删除用户
    • remove:删除用户时,默认是不删除家目录,remove=no;remove=yes表示删除用户家目录
    • password:指定用户的密码,需要是加密后的字符串,相当于/etc/shadow文件中的第2列
    • update_password always|on_create:默认always
    • generate_ssh_key no|yes:默认为no;yes表示生成ssh密钥对,在用户家目录.ssh/目录中生成id_rsa的私钥和id_rsa.pub的公钥;若已存在同名的密钥,不会覆盖
    • ssh_key_file:前提是generate_ssh_key=yes,使用此参数生成ssh私钥的路径和名称,对应公钥会在同路径下生成,后缀名".pub"
    • ssh_key_comment:前提是generate_ssh_key=yes,使用此参数定义公钥中的注释信息,若已存在同名的密钥,不会覆盖;不指定时默认注释信息为"ansible-generated on 远程主机的主机名"
    • ssh_key_passphrase:前提是generate_ssh_key=yes,使用此参数设置私钥的密码,若已存在同名的密钥,不会覆盖
    • ssh_key_type:前提是generate_ssh_key=yes,使用此参数设置密钥对的类型,默认为rsa,若已存在同名的密钥,不会覆盖

    示例

    1. 在所有服务器中创建test用户,若已存在,不进行任何操作
    ]# ansible all -m user -a 'name=test'
    
    1. 在所有服务器中删除test用户,但不删除此用户的家目录
    ]# ansible all -m user -a 'name=test state=absent'
    
    1. 在所有服务器中删除test用户,且删除此用户的家目录
    ]# ansible all -m user -a 'name=test state=absent remove=yes'
    
    1. 指定所有服务器中test用户的基本组为admin(需提前存在),不指定时默认与用户名一样
    ]# ansible all -m user -a 'name=test group=admin'
    
    1. 指定所有服务器中test用户的附加组为root和admin
    ]# ansible all -m user -a 'name=test groups=root,admin append=yes'
    
    1. 指定所有服务器中test用户过期时间是2020-05-20
    ]# date -d 2020-05-20 +%s #获取对应日期的unix时间戳
    1589904000
    ]# ansible all -m user -a 'name=test expires=1589904000'
    
    1. 修改所有服务器中test用户的密码为'123455'
    ]# python
    >>> import crypt
    >>> crypt.crypt('123455')
    '$6$B0zo/bCGaUmqFKx8$apGEf9i1Yd4/PE.bhL7P86T6FDir45jE5DQ549CjG3SoWtfPmAQSCDkz2Wt5kXppAlhbTLqOclg45yOz7YH9K/'
    >>> exit()
    ]# ansible all -m user -a 'name=test password="$6$B0zo/bCGaUmqFKx8$apGEf9i1Yd4/PE.bhL7P86T6FDir45jE5DQ549CjG3SoWtfPmAQSCDkz2Wt5kXppAlhbTLqOclg45yOz7YH9K/"'
    
    1. 为所有服务器中test用户生成ssh密钥对,生成在/opt目录下,私钥名id_rsa_test,注释信息"test rsa",私钥密码123455
    ]# ansible all -m user -a 'name=test generate_ssh_key=yes ssh_key_file=/opt/id_rsa_test ssh_key_comment="test rsa" ssh_key_passphrase=123455'
    
  • 相关阅读:
    使用Python开发IOT Edge应用(2)
    使用Python开发IOT Edge应用(1)
    使用Harbor+Auzre IOT Edge构建智能边界(2)
    使用Harbor+Auzre IOT Edge构建智能边界
    Linux开发人员玩转HDInsight集群上的MapReduce
    将人工智能带到物联网边界设备(2)
    将人工智能带到物联网边界设备(1)
    oracle误删存储过程
    ORACLE审计
    ESXI将虚拟机厚置备转换成精简置备
  • 原文地址:https://www.cnblogs.com/wanwz/p/12921827.html
Copyright © 2011-2022 走看看