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'


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM