yum_repsitory模块
常用参数
- name 仓库名称,就是仓库文件中第一行中括号中的名称,必须的参数【xxxxx】
- description 仓库描述信息,添加是必须的参数
- baseurl yum存储库 “”“repodata”目录所在目录的URL,添加时必须的参数
- file仓库文件保存到本地的文件名,不包含.repo 默认是name的值
- state preset确认添加仓库文件,absent确删除仓库文件
- gpgcheck 是否检查GPG yes| no
- example
添加yum源
在管理节点使用yum_repsitory模块添加epel.repo源
然后去被管理节点查看
删除epel源
参数直接接名字和state状态就行
yum 模块
也就是等同与linux中的linux命令,对远程服务器上的rpm包进行管理
常用参数:
name:要安装的软件包名,多个软件包以英文逗号隔开 state 对当前指定的软件安装、移除操作 支持的参数有:
present:确认已经安装,但不升级
inistalled:确认已经安装
latest:确保安装,且升级为最新
absent和removed:确认已移除
在管理节点上面,用yum给被管理节点安装nginx
systemd模块
daemon_reload 重新载入systemd,扫描新的或者有变动的单元
enabled 是否开机自启动 yes| no
name 必选项,服务名称,比如:httpd vsftpd
state 对当前服务执行启动,停止,重启,重新加载等操作 (started,stopped,restarted,reloaded)
- Example
重新加载 systemd
[root@localhost opt]# ansible dbserver -i hosts -m systemd -a "daemon_reload=yes"
192.168.88.129 | SUCCESS => {
“ansible_facts”: {
“discovered_interpreter_python”: “/usr/bin/python”
},
“changed”: false,
“name”: null,
“status”: {} }
启动被控节点的nginx服务
> [root@localhost opt]# ansible dbserver -i hosts -m systemd
-a"name=nginx state=started"
nginx 开机自启
> [root@localhost opt]# ansible dbserver -i hosts -m systemd
-a"name=nginx enabled=yes"
group模块
在被管理节点去管理组,删除或者添加
name 组名称
system 是否为系统组 yes、no (默认是no)
state 删除或者创建 present 、absent
- example
创建普通组
组名:db_admin
[root@localhost opt]# ansible dbserver -i hosts -m group -a “name=db_admin”
192.168.88.129 | CHANGED => {
“ansible_facts”: {
“discovered_interpreter_python”: “/usr/bin/python”
},
“changed”: true,
“gid”: 1000,
“name”: “db_admin”,
“state”: “present”,
“system”: false }
在被管理节点上面就能验证了
user模块
用于在被管理节点上对用户进行管理
name 指定用户名
password 默认没有密码
update_password 与 原密码不同 就会更新密码
home指定用户的家目录
shell 设置用户的shell
comment用户的描述信息
create_home 创建家目录
group设置用户的主组
groups 将用户加入到多个其他组中,多个用多好隔开,默认会吧用户从其他已经加入的组中删除
append 一般和groups 配合使用 当append=yes时,不会把用户从其他已经加入的组中删除
system设置为yes,将会创建一个系统账号
expires 设置用户的过期时间generate_ssh_key 设置为yes 将会为用户生成密钥,这不会覆盖原理啊的密钥
ssh_key_type指定用户的密钥类型,默认是rsa 具体的类型取决于被管理的节点
- example
创建用户并设置密码
首先使用ssl创建加密密码
[root@localhost opt]# pass=$(echo “china” | openssl passwd -1 -stdin)
> [root@localhost opt]# echo $pass
1 1 1xgfEW.wX$kNswcArC1X6bpSPuY4d/t0
执行ansible 命令创建用户xjm并设置密码
[root@localhost opt]# ansible dbserver -i hosts -m user -a "name=xjm password=${pass}"
192.168.88.129 | CHANGED => {
“ansible_facts”: {
“discovered_interpreter_python”: “/usr/bin/python”
},
“changed”: true,
“comment”: “”,
“create_home”: true,
“group”: 1001,
“home”: “/home/xjm”,
“name”: “xjm”,
“password”: “NOT_LOGGING_PASSWORD”,
“shell”: “/bin/bash”,
“state”: “present”,
“system”: false,
“uid”: 1000
创建用户yangge,并且为其创建密钥对,并且密钥类型为ecdsa
[root@localhost opt]# ansible dbserver -i hosts -m user -a "name=yangge generate_ssh_key=yes ssh_key_type=ecdsa"
192.168.88.129 | CHANGED => {
“ansible_facts”: {
“discovered_interpreter_python”: “/usr/bin/python”
},
“changed”: true,
“comment”: “”,
“create_home”: true,
“group”: 1002,
“home”: “/home/yangge”,
“name”: “yangge”,
“shell”: “/bin/bash”,
“ssh_fingerprint”: “256 SHA256:8C6PrAR116uuyjw5iVLV9Q2QxL1UVKcTiPB/X7Awpgc ansible-generated
on localhost.localdomain (ECDSA)”,
“ssh_key_file”: “/home/yangge/.ssh/id_ecdsa”,
“ssh_public_key”: “ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBO1p3Nc+T8qS3lJR4UmnDV3AlrbZgDdGHnBdRyyqik/RgjT7hxVvxLv1O/8I8Srqs+Xf01a92zscj77IWB+NyHo=
ansible-generated on localhost.localdomain”,
“state”: “present”,
“system”: false,
“uid”: 1001
创建一个tom用户,并且设置其有效期到2020年4月15日,加入到组db_admin中
[root@localhost opt]# ansible dbserver -i hosts -m user -a "name=tom expires=$(date +%s -d 20211209) groups=db_admin"
192.168.88.129 | CHANGED => {
“ansible_facts”: {
“discovered_interpreter_python”: “/usr/bin/python”
},
“changed”: true,
“comment”: “”,
“create_home”: true,
“group”: 1003,
“groups”: “db_admin”,
“home”: “/home/tom”,
“name”: “tom”,
“shell”: “/bin/bash”,
“state”: “present”,
“system”: false,
“uid”: 1002