ad-hoc
ad-hoc
ad-hoc选项说明
ansible查看所有模块
# 查看所有ansible所有模块
ansible-doc -l
# 统计ansible模块的数量
ansible-doc -l|wc -l
ansible常用模块
文件管理模块
- file 模块:创建删除文件,目录,链接,修改文件,目录的权限等
- copy 模块: 将控制端主机的文件拷贝到远程主机
- lineinfile 模块:修改文件内容(按行修改)
- fetch 模块:将远程其他主机到文件拷贝到本地
- replace 模块: 修改文件内容(按关键字修改)
- syncchronize
软件管理模块
- package
- yum_repository 模块: 创建、修改、删除yum源配置文件
- yum 模块:安装,卸载,升级软件
- apt 模块:安装,卸载,升级软件
- dnf
- gem
- pip
系统管理模块
- firewalld
- reboot
- service 模块:启动服务,设置服务开机自启
- user 模块: 创建,删除,修改账户,设置密码
user模块示例
网络管理模块
-
get_url 模块: 使用http/https/ftp 下载文件
-
nmcli 模块: 管理网络
-
uri 模块: 访问web,返回某个值
-
shell模块:执行命令(支持管道,重定向等)
-
script模块:拷贝任意脚本到远程主机,并执行该脚本
-
lvg模块:创建、删除、修改vg
-
lvol模块:创建、删除、修改lv
查看模块用法
# 查看yum模块用法
ansible-doc yum
ad-hoc练习
# 开始练习
[student@workstation deploy-manage]$ lab deploy-adhoc start
Setting up workstation for lab exercise work:
· ansible package is installed on workstation................. SUCCESS
· Create exercise directory................................... SUCCESS
· Download Ansible configuration.............................. SUCCESS
· Download Ansible inventory.................................. SUCCESS
执行ad-hoc命令
[student@workstation deploy-adhoc]$ ansible all -a 'id'
servera.lab.example.com | CHANGED | rc=0 >>
uid=1000(student) gid=1000(student) 组=1000(student),10(wheel) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
localhost | CHANGED | rc=0 >>
uid=1000(student) gid=1000(student) 组=1000(student),10(wheel) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
指定用户执行ad-hoc命令
[student@workstation deploy-adhoc]$ ansible all -a 'id' -u devops
servera.lab.example.com | CHANGED | rc=0 >>
uid=1001(devops) gid=1001(devops) 组=1001(devops) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
localhost | CHANGED | rc=0 >>
uid=1001(devops) gid=1001(devops) 组=1001(devops) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
练习copy模块
# 替换文件内容
[student@workstation deploy-adhoc]$ ansible localhost -m copy -a 'content="Managed by Ansible\n" dest=/etc/motd' -u root
localhost | CHANGED => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/libexec/platform-python"
},
"changed": true,
"checksum": "4458b979ede3c332f8f2128385df4ba305e58c27",
"dest": "/etc/motd",
"gid": 0,
"group": "root",
"md5sum": "65a4290ee5559756ad04e558b0e0c4e3",
"mode": "0644",
"owner": "root",
"secontext": "system_u:object_r:etc_t:s0",
"size": 19,
"src": "/root/.ansible/tmp/ansible-tmp-1634845213.8595588-57941547245216/source",
"state": "file",
"uid": 0
}
# 提权到devops执行命令
[student@workstation deploy-adhoc]$ ansible localhost -m copy -a 'content=" 替换文件Managed by Ansible 这是devops创建的内容\n" dest=/etc/motd' -u devops --become
# 查看替换后的文件内容
[student@workstation deploy-adhoc]$ cat /etc/motd
Managed by Ansible
综合实验
# 开始综合实验
lab deploy-review start