关于ansible的模块 ③

news2024/11/18 17:24:01

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。


接《关于Ansible的模块①》和《关于Ansible的模块②》,继续学习ansible的user模块。

user模块可以增、删、改linux远程目标节点的用户账户,并为其设置账户的属性。

模块参数

参数可选项&默认值【红色】含义

name【必填参数】

指定要创建/修改/删除的用户名,必填

group

-指定用户属于哪个组

groups

-指定用户属于哪些组

comment

-设置账户描述

home

-指定家目录路径,默认在/home

create_home

true/false是否创建家目录,默认创建,如无需创建则将该参数设置为false

move_home

true/false是否迁移家目录到指定目录

expires

-设置用户到期时间

remove

true/false参数在 state=absent  时使用,删除与用户关联的目录。等价于 userdel --remove,默认值为 false

password

-设置用户密码,不能使用明文方式

password_lock

true/false锁定密码【不会禁用用户】,false表示解锁

update_password

on_create/alwaysalways:如果密码不同,将更新密码
on_create:仅为新创建的用户设置密码

append

true/false默认值是false,用户将只被添加到在指定的组中groups,将他们从所有其他组中删除。可以设置为true,则用户被添加到指定的组里

authorization

-给用户授权,可以使用逗号分隔设置多个授权。可使用 authorization=''删除授权

force

true/false指定账户是否被强制删除,参数在 state=absent  时使用,等价于 userdel --force,默认值为false

ssh_key_bits

-指定要创建的 SSH 密钥中的位数。

ssh_key_comment

-ssh秘钥的注释说明

ssh_key_file

.ssh/id_rsa指定 SSH 密钥文件名,默认为.ssh/id_rsa

ssh_key_passphrase

-设置 SSH 密钥的密码。如果未提供密码,则 SSH  密钥将默认为没有密码

ssh_key_type

rsa指定要生成的 SSH 密钥的类型,默认指为rsa

generate_ssh_key

true/false是否为相关用户生成 SSH  密钥。默认不会覆盖现有的SSH密钥,如需覆盖,则加上force=yes

non_unique

-当与 -u 选项一起使用时,此选项允许将用户 ID 更改为非唯一值

profile

-设置用户的配置文件。可以使用逗号分隔设置多个配置文件。可使用profile=''删除所有配置文件

role

-设置用户的角色,可以使用逗号分隔设置多个角色。可使用role=''删除所有角色

seuser

-选择是否在启用selinux的系统上设置seuser类型(user_u)

shell

-设置用户的默认 shell

state

absent/present无论账号是否应该存在,如果状态与声明不同,则采取措施。选值有  present、absent,默认值为 present

system

true/false指定用户是否为系统用户

uid

-指定uid信息,选填

使用范例

1. 创建一个普通用户

ansible all -m user -a "name=sre"

2. 创建一个用户并指定组

ansible all -m user -a "name=sre group=root"

ansible all -m user -a "name=sre groups=root,test"

3. 给用户设置&修改密码

如果用户不存在,则会新创建用户并设置密码,用户已存在,则会更新密码

# 第一步:先在Python里获得明文密码的密文,例如给用户sre设置密码为123456,则获取123456的密文
[root@test101 ~]# python
Python 2.7.5 (default, Jun 28 2022, 15:30:04) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 
>>> import crypt
>>> 
>>> crypt.crypt('123456')  #设置密码123456的密文
'$6$qMFSpDtevYE43QLA$38Bnydh7hNMUMZ1nfYXJxRbJdWTvOOXx7P8e9XptmmyneS.cJOCoOaPGWvMLiVc58kmJ1dlTnhl2kVwe4ZUHN1'
>>> 
>>> exit()
[root@test101 ~]# 


##上面的步骤也可以在命令行一步执行:
[root@test101 ~]# python -c 'import crypt,getpass;pw="123456";print(crypt.crypt(pw))'



#第二步:设置&修改密码
[root@test101 ~]# ansible all -m user -a "name=sre  password='$6$2JT1ImyA5Qpn7Lgl$4ed2kiN4G3ssPTf0Vi6k0EvjDhQVjZtIGC38pWa0nukMVukH5gGXZEZa.mycDV7aVDAsVWmidulZtvBW2yftO.' update_password=always"
#注意引号的位置,密码用双引号,

登录验证:

4. 设置用户到期时间

设置用户sre到期时间为2024年4月2日00:00分(今日为2024.4.3)

[root@test101 tmp]# date -d 2024-04-02 +%s  #获取对应日期的unix时间戳
1711987200
[root@test101 tmp]# 
[root@test101 tmp]# ansible all -m user -a "name=sre expires=1711987200 comment='expires date is 20240402'"
[root@test101 tmp]# 
[root@test101 tmp]# ssh sre@10.0.0.102
sre@10.0.0.102's password: 
Your account has expired; please contact your system administrator
Authentication failed.
[root@test101 tmp]#

5. 删除一个用户(及其家目录)

ansible all -m user -a "name=sre state=absent" #不删除家目录
ansible all -m user -a "name=sre state=absent remove=yes"  #删除家目录 
#备注:"state=absent"等价于“userdel --remove”,如果远程主机正在以sre用户登录,则会删除失败

6. 为用户生成ssh密钥对

为远程服务器中的sre用户生成ssh密钥对,生成在/home/sre/.ssh(.ssh目录事先不存在会自动创建)目录下,私钥名id_rsa_sre,注释信息"sre rsa",私钥密码123456

ansible all -m user -a 'name=sre generate_ssh_key=yes ssh_key_file=/home/sre/.ssh/id_rsa_sre ssh_key_comment="sre rsa" ssh_key_passphrase=123456'

未完待续......

感谢您的阅读与喜爱!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1567452.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Pycharm显示Low memory的解决办法

这种情况该怎么办呢? 按照网上的说法,首先按照下图,选择memory Indicator: 就可以在pycharm的右下角看到内存以及其分配情况(allocated表示被分配的,可以看到我的已经被分配完了,应该是这个意思&#xff0…

Ubuntu Desktop 安装有道词典

Ubuntu Desktop 安装有道词典 1. 有道词典2. Installation2.1. 解压 deb 包到 youdao 目录2.2. 解压 deb 包中的 control 信息 (包的依赖写在该文件里面)2.3. 编辑 control 文件,删除依赖里面的 gstreamer0.10-plugins-ugly2.4. 创建 youdaobuild 目录,重…

Linux非管理员安装ninja,解决RuntimeError: Ninja is required to load C++ extensions错误

最近在复现代码的时候,需要用到C环境进行编译,这就少不了ninja,但是因为服务器是实验室公用的,所以一般没有管理员权限,所以就很难办!!!! 下面是非管理员权限安装ninja&a…

新型智慧城市大数据解决方案(附下载)

随着云计算、大数据、移动互联网等技术的发展,由城市运行产生的交通、环境、市政、商业等各领域数据量巨大,这些数据经过合理的分析挖掘可产生大量传统数据不能反映的城市运行信息,已成为智慧城市的重要资产。 在大数据时代,数据信…

【EasyExcel】多sheet、追加列

业务-EasyExcel多sheet、追加列 背景 最近接到一个导出Excel的业务,需求就是多sheet,每个sheet导出不同结构,第一个sheet里面能够根据最后一列动态的追加列,追加多少得看运营人员传了多少需求列。原本使用的 pig4cloud 架子&…

excel统计分析——协方差分析的作用

参考资料:生物统计学 1、协变量与试验因素的区别 如果把协方差分析资料中的协变量看作多因素方差分析资料中的一个因素,则两类资料有相似之处,但两类资料有本质的不同。在方差分析中,各因素的水平时人为控制的,即使是…

[flink 实时流基础] flink 源算子

学习笔记 Flink可以从各种来源获取数据,然后构建DataStream进行转换处理。一般将数据的输入来源称为数据源(data source),而读取数据的算子就是源算子(source operator)。所以,source就是我们整…

js手持小风扇

文章目录 1. 演示效果2. 分析思路3. 代码实现 1. 演示效果 2. 分析思路 先编写动画&#xff0c;让风扇先转起来。使用 js 控制动画的持续时间。监听按钮的点击事件&#xff0c;在事件中修改元素的animation-duration属性。 3. 代码实现 <!DOCTYPE html> <html lang…

(表征学习论文阅读)FINITE SCALAR QUANTIZATION: VQ-VAE MADE SIMPLE

1. 前言 向量量化&#xff08;Vector Quantization&#xff09;或称为矢量量化最早在1984年由Gray提出&#xff0c;主要应用于数据压缩、检索领域&#xff0c;具体的阐述可以参考我写的另一篇关于VQ算法的文章。随着基于神经网络的离散表征学习模型的兴起&#xff0c;VQ技术也…

Cisco ACI Simulator 6.0(5h) - ACI 模拟器

Cisco ACI Simulator 6.0(5h) - ACI 模拟器 Application Centric Infrastructure (ACI) Simulator Software 请访问原文链接&#xff1a;https://sysin.org/blog/cisco-acisim-6/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.o…

最新梨花带雨网页音乐播放器

源码简介 最新梨花带雨网页音乐播放器二开优化修复美化版全开源版本源码下载 梨花带雨播放器基于thinkphp6开发的XPlayerHTML5网页播放器前台控制面板,支持多音乐平台音乐解析。二开内容&#xff1a;修复播放器接口问题&#xff0c;把接口本地化&#xff0c;但是集成外链播放…

AcWing刷题-约数个数

约数的个数 代码 # 计数 def f(x)->int:cnt 0i 1while i * i < x:if x % i 0:cnt 1if i * i < x:cnt 1i 1return cntn int(input()) a list(map(int,input().split())) for i in a:print(f(i))

K8s Deployment 滚动更新、金丝雀发布、自定义钩子、生命周期解析

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《Kubernetes航线图&#xff1a;从船长到K8s掌舵者》 &#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、Deployment的高级特性 1、滚动更新 2、金丝雀…

Emacs之解除comment-region绑定C-c C-c快捷键(一百三十四)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

对一个时间序列中的每个元素按照指定精度位置四舍五入

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 对一个时间序列中的每个元素 按照指定精度位置四舍五入 Series.dt.round() 选择题 以下代码的输出结果中正确的是? import pandas as pd ts pd.Series(pd.date_range("2024-04-04 08:…

16 RGB-LCD 彩条显示

RGB TFT-LCD 简介 TFT-LCD 的全称是 Thin Film Transistor-Liquid Crystal Display&#xff0c;即薄膜晶体管液晶显示屏&#xff0c;它显示的每个像素点都是由集成在液晶后面的薄膜晶体管独立驱动&#xff0c;因此 TFT-LCD 具有较高的响应速度以及较好的图像质量。液晶显示器是…

使用pip安装geopandas(24.4更新)

geopandas是我们用Python进行地理分析常用的库&#xff0c;在数据处理、分析、制图等场景中有着极为广泛的应用&#xff0c;但是在安装过程中会出现各种问题。​geopandas的安装方式有很多&#xff0c;今天我们选取较为简单的pip来进行geopandas的安装。 ​首先&#xff0c;我…

动规训练2

一、最小路径和 1、题目解析 就是一个人从左上往做下走&#xff0c;每次只能往右或者往下&#xff0c;求他到终点时&#xff0c;路径上数字和最小&#xff0c;返回最小值 2、算法原理 a状态表示方程 小技巧&#xff1a;经验题目要求 用一个二维数组表示&#xff0c;创建一个…

【WEEK6】 【DAY3】MySQL函数【中文版】

2024.4.3 Wednesday 目录 5.MySQL函数5.1.常用函数5.1.1.数据函数5.1.2.字符串函数5.1.2.1.CHAR_LENGTH(str)计算字符串str长度5.1.2.2.CONCAT(str1,str2,...)拼接字符串str1 str2 ...5.1.2.3.INSERT(str,pos,len,newstr)把原文str第pos位开始长度为len的字符串替换成newstr5.…

vue3数据库中存头像图片相对路径在前端用prop只能显示路径或无法显示图片只能显示alt中内容的问题的解决

不想看前情可以直接跳到头像部分代码 前情&#xff1a; 首先我们是在数据库中存图片相对路径&#xff0c;这里我们是在vue的src下的assets专门建一个文件夹img存头像图片。 然后我们如果用prop"avatar" label"头像"是只能显示图片路径的&#xff0c;即lo…