关于ansible的模块 ③

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


接《关于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'

未完待续......

感谢您的阅读与喜爱!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

BugKu:Simple SSTI

1.进入此题 2.查看源代码 可以知道要传入一个名为flag的参数,又说我们经常设置一个secret_key 3.flask模版注入 /?flag{{config.SECRET_KEY}} 4.学有所思 4.1 什么是flask? flask是用python编写的一个轻量web开发框架 4.2 SSTI成因(SST…

[图解]DDD领域驱动设计伪创新-通用语言05

0 00:00:01,060 --> 00:00:04,370 甚至有的人把这个当成恩典 1 00:00:08,730 --> 00:00:11,500 他认为这个对技术人员有好处 2 00:00:13,010 --> 00:00:14,790 他掌握了主动权 3 00:00:15,730 --> 00:00:16,501 这样的话 4 00:00:16,501 --> 00:00:18,430 你…

CANoe自带的TCP/IP协议栈中TCP的keep alive机制是如何工作的

TCP keep alive机制我们已经讲过太多次,车内很多控制器的TCP keep alive机制相信很多开发和测试的人也配置或者测试过。我们今天想知道CANoe软件自带的TCP/IP协议栈中TCP keep alive机制是如何工作的。 首先大家需要知道TCP keep alive的参数有哪些?其实就三个参数:CP_KEEP…

JVM之常用监控工具

JVM之常用监控工具 jps jinfo 获取配置信息 基本语法 jinfo [options] <pid>常用选项 -sysprops&#xff1a;显示JVM进程的系统属性。-flags&#xff1a;显示用于启动JVM的命令行标志和VM选项。-flag <name>&#xff1a;显示指定JVM标志的当前值。-flag [|-]&…

【JSON2WEB】 12基于Amis-admin的动态导航菜单树

【JSON2WEB】01 WEB管理信息系统架构设计 【JSON2WEB】02 JSON2WEB初步UI设计 【JSON2WEB】03 go的模板包html/template的使用 【JSON2WEB】04 amis低代码前端框架介绍 【JSON2WEB】05 前端开发三件套 HTML CSS JavaScript 速成 【JSON2WEB】06 JSON2WEB前端框架搭建 【J…

Firefox 关键词高亮插件的简单实现

目录 1、配置 manifest.json 文件 2、编写侧边栏结构 3、查找关键词并高亮的方法 3-1&#xff09; 如果直接使用 innerHTML 进行替换 4、清除关键词高亮 5、页面脚本代码 6、参考 1、配置 manifest.json 文件 {"manifest_version": 2,"name": &quo…

配置zookeeper的时候三个节点都启动了但是查询zookeeper的角色的时候显示没启动成功

场景 搭建了一个音乐平台数仓&#xff0c;一共有五个节点&#xff0c;其中三个节点配置zookeeper&#xff0c;我的操作是先把这三个节点的zookeeper全部启动&#xff0c;然后再分别查询各自zookeeper的角色。出现了一下问题&#xff1a; Error contacting service. It is proba…

网络层

网络层主要负责两方面的事情 1.地址管理&#xff1a;制定一系列的规则&#xff0c;通过地址&#xff0c;描述出网络中的设备的位置 2.路由选择&#xff1a;网络环境是非常复杂的。从一个节点到另外一个节点之间&#xff0c;存在很多条不同的路径&#xff0c;通过路由选择来筛…

【nc工具信息传输】

nc&#xff0c;全名叫 netcat&#xff0c;它可以用来完成很多的网络功能&#xff0c;譬如端口扫描、建立TCP/UDP连接&#xff0c;数据传输、网络调试等等&#xff0c;因此&#xff0c;它也常被称为网络工具的 瑞士军刀 。 nc [-46DdhklnrStUuvzC] [-i interval] [-p source_po…

3.恒定乘积自动做市商算法及代码

中心化交易所的安全风险 在中心化交易所中注册账户时&#xff0c;是由交易所生成一个地址&#xff0c;用户可以向地址充币&#xff0c;充到地址之后交易所就会根据用户充币的数量显示在管理界面中。但是充币的地址是掌管在交易所之中的&#xff0c;资产的控制权还是在交易所。…

【Java多线程(4)】案例:设计模式

目录 一、什么是设计模式&#xff1f; 二、单例模式 1. 饿汉模式 2. 懒汉模式 懒汉模式-第一次改进 懒汉模式-第二次改进 懒汉模式-第三次改进 一、什么是设计模式&#xff1f; 设计模式是针对软件设计中常见问题的通用解决方案。它们提供了一种被广泛接受的方法来解决…

【2024系统架构设计】案例分析- 5 Web应用

目录 一 基础知识 二 真题 一 基础知识 1 Web应用技术分类 大型网站系统架构的演化:高性能、高可用、可维护、应变、安全。 从架构来看:MVC,MVP,MVVM,REST,Webservice,微服务。

从头开发一个RISC-V的操作系统(一)计算机系统漫游

文章目录 前提计算机的硬件组成程序的存储与执行操作系统 目标&#xff1a;通过这一个系列课程的学习&#xff0c;开发出一个简易的在RISC-V指令集架构上运行的操作系统。 前提 这个系列的大部分文章和知识来自于&#xff1a;[完结] 循序渐进&#xff0c;学习开发一个RISC-V上…

element-ui divider 组件源码分享

今日简单分享 divider 组件&#xff0c;主要有以下两个方面&#xff1a; 1、divider 组件页面结构 2、divider 组件属性 一、组件页面结构 二、组件属性 2.1 direction 属性&#xff0c;设置分割线方向&#xff0c;类型 string&#xff0c;horizontal / vertical&#xff0…

AtCoder Beginner Contest 347 A~F

AtCoder Beginner Contest 347 A~F - 知乎 (zhihu.com) Tasks - AtCoder Beginner Contest 347 A.Divisible(循环) 代码 #include<bits/stdc.h> using namespace std;void solve() {int n, k;cin >> n >> k;for (int i 0; i < n; i) {int a;cin >…

如何申请Telegram机器人 | 推送通知

一、前言 利用Telegram机器人推送通知&#xff0c;需要在环境变量填入正确的TG_BOT_TOKEN以及TG_USER_ID&#xff0c;以下教程简明阐述如何获取Token以及UserID 二、获取步骤 1、首先在Telegram上搜索BotFather机器人。需要注意的是&#xff0c;搜索结果中选择ID为BotFather…

基于向量数据库搭建自己的搜索引擎

前言【基于chatbot】 厌倦了商业搜索引擎搜索引擎没完没了的广告&#xff0c;很多时候&#xff0c;只是需要精准高效地检索信息&#xff0c;而不是和商业广告“斗智斗勇”。以前主要是借助爬虫工具&#xff0c;而随着技术的进步&#xff0c;现在有了更多更方便的解决方案&…

Maven--lib分离的打包方式

就是把lib包和source源码分开打包。优势就是&#xff0c;面对频繁更新的应用场景时&#xff0c;可以只更新源码包&#xff08;当然&#xff0c;前提是你的依赖没有增减&#xff09;。尤其是使用jenkins更新项目时&#xff0c;会省去很多时间吧&#xff1f; 不同项目的 lib之间不…

【C++练级之路】【Lv.18】哈希表(哈希映射,光速查找的魔法)

快乐的流畅&#xff1a;个人主页 个人专栏&#xff1a;《算法神殿》《数据结构世界》《进击的C》 远方有一堆篝火&#xff0c;在为久候之人燃烧&#xff01; 文章目录 引言一、哈希1.1 哈希概念1.2 哈希函数1.3 哈希冲突 二、闭散列2.1 数据类型2.2 成员变量2.3 默认成员函数2.…

保研线性代数复习3

一.基底&#xff08;Basis&#xff09; 1.什么是生成集&#xff08;Generating Set&#xff09;&#xff1f;什么是张成空间&#xff08;Span&#xff09;&#xff1f; 存在向量空间V(V&#xff0c;&#xff0c;*)&#xff0c;和向量集&#xff08;xi是所说的列向量&#xff…