Ansible的用户管理模块


group

## 添加指定组
ansible all -m group -a "name=牛逼的组 gid=888"

## 删除指定组 必须指定组名  指定gid无效
ansible all -m group -a "name=牛逼的组  state=absent"

name            #指定创建的组名
gid             #指定组的gid
state
    absent      #移除远端主机的组
    present     #创建远端主机的组(默认)

user

uid             #指定用户的uid
group           #指定用户组名称
groups          #指定附加组名称
password        #给用户添加密码(单引号)
shell           #指定用户登录shell
create_home     #是否创建家目录
#创建用户指定uid和gid,不创建家目录也不允许登陆
ansible all -m user -a "name=lll uid=888 group=888 shell=/sbin/nologin create_home=false"
 
	
#创建用户并生成秘钥对
ansible all -m user -a "name=ll uid=888 group=root shell=/bin/bash generate_ssh_key=yes ssh_key_bits=2048 ssh_key_file=.ssh/id_rsa" 

### 创建用户  无家目录
ansible all -m user -a "name=kk uid=666 group=adm password='123' "

#将明文密码进行hash加密,然后进行用户创建
# 需要  python3-pip   passlib
ansible all -m debug -a "msg={{ 'kjt' | password_hash('sha512', 'salt') }}" 

	
#创建用户
[root@m01 ~]# ansible all -m user -a 'name=lll1 password=$6$salt$gaWhNcZweYlKQcLU1CqyY/UbYqIeUffVz6ESj87aMNfMX.xYBx0Z.67wzLN/hkkxmNut7SvkksPZ2Zlrse98m/ create_home=true shell=/bin/bash' 



Ansible的定时任务模块

cron

# 正常使用crond服务
[root@m01 ~]# crontab -l
* * * * *  /bin/sh /server/scripts/yum.sh
 
# 使用ansible添加一条定时任务
ansible all -m cron -a "minute=* hour=* day=* month=* weekday=*  job='/bin/sh /server/scripts/test.sh' name=这是一个定时任务 "

ansible all -m cron -a "job='/bin/sh /server/scripts/test.sh' name=这也是一个定时任务"
 
# 设置定时任务注释信息,防止重复,name设定
ansible web_group -m cron -a "name='cron01' job='/bin/sh /server/scripts/test.sh'"
 
# 删除相应定时任务
ansible all -m cron -a "minute=* hour=* day=* month=* weekday=*  job='/bin/sh /server/scripts/test.sh' name=这是一个定时任务 state=absent"
 
# 注释相应定时任务,使定时任务失效
ansible web_group -m cron -a "name='ansible cron01' minute=0 hour=0 job='/bin/sh /server/scripts/test.sh' disabled=no"

image-20241015221931306




Ansible磁盘挂载模块

mount
	
present     # 开机挂载,仅将挂载配置写入/etc/fstab
mounted     # 挂载设备,并将配置写入/etc/fstab
unmounted   # 卸载设备,不会清除/etc/fstab写入的配置
absent      # 卸载设备,会清理/etc/fstab写入的配
fstype		# 挂载类型
	
ansible web_group -m mount -a "src=172.16.1.31:/data path=/data fstype=nfs opts=defaults state=present"
 
ansible web01 -m mount -a "src=172.16.1.31:/data path=/data fstype=nfs opts=defaults state=mounted"
 
ansible web02 -m mount -a "src=172. 16.1.31:/data path=/data fstype=nfs opts=defaults state=unmounted"
 
ansible web -m mount -a "src=172.16.1.31:/data path=/data fstype=nfs opts=defaults state=absent"



防火墙及selinux模块

selinux
#修改配置文件关闭selinux,必须重启
[root@m01 ~]# ansible all -m selinux -a 'state=disabled' -i ./hosts

 
#临时关闭
[root@m01 ~]# ansible all -m shell -a 'setenforce 0' -i ./hosts
firewalld
service                 #指定开放或关闭的服务名称
port                    #指定开放或关闭的端口
permanent               #是否添加永久生效
state                   #开启或者关闭
    enabled
    disabled
 
zone                    #指定配置某个区域
rich_rule               #配置辅规则
masquerade              #开启地址伪装
immediate               #临时生效
source                  #指定来源IP
ansible all -m firewalld -a 'service=http permanent=yes state=enabled'
ansible all -m firewalld -a "service=http immediate=yes permanent=yes state=enabled" 
ansible all -m firewalld -a "port=8080-8090/tcp immediate=yes permanent=yes state=enabled"