没有合适的资源?快使用搜索试试~ 我知道了~
ansible的常用模块和playbook-全(cent7.x)
需积分: 0 0 下载量 168 浏览量
2023-10-11
21:25:49
上传
评论
收藏 50KB DOCX 举报
温馨提示
试读
20页
ansible的常用模块和playbook-全(cent7.x)
资源推荐
资源详情
资源评论
ansible 的安装和常用模块使用-7.x(此处是 7.4)和 ansible-playbook 使用—(全)
ansible 特点:
ansible 不需要单独安装客户端,ssh 相当于 ansible 的客户端
ansible 不需要启动任何服务,仅需要安装对应工具即可。
ansible 依赖大量的 python 模块来实现批量管理。
ansible 的配置文件:/etc/ansible/ansible.cfg
ansible 查看模块使用参数: #ansible-doc 模块名,如:ansible-doc command
1.ansible 的安装和使用——管理端:(ansible,192.168.171.128):
1)管理端机器上生成 ssh 密钥对,实现能无密码连接登录到被管理机器:
[root@localhost ~]# ssh-keygen -t rsa #下面一路回车,不用输密码
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:rZn0m2eUdeYzqZUEYE2W8cAZJ2ElF/6/XvvP7aoq7EQ root@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
| o=@B=.|
| . o*O |
| .o |
| . ..+|
| E . o.++|
| o = o *o|
| .= .. o =|
| .o oo. .=|
| ...++..o*O|
+----[SHA256]-----+
[root@localhost ~]# ls /root/.ssh/
id_rsa id_rsa.pub
[root@localhost ~]# yum -y install openssh openssh-clients openssh-server #若没有 ssh 命令和 ssh-copy-id
等时候的安装
[root@localhost ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.171.129 #或仅 IP 也可
#第一次需要输入对方用户密码:123456
[root@localhost ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.171.129 #或仅 IP 也可
#第一次需要输入对方用户密码:123456
[root@localhost ~]# ssh root@192.168.171.129 ifconfig |head -3
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.171.129 netmask 255.255.255.0 broadcast 192.168.171.255
inet6 fe80::2fab:326:734f:2936 prefixlen 64 scopeid 0x20<link>
[root@localhost ~]# ssh root@192.168.171.130 ifconfig |head -3
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.171.130 netmask 255.255.255.0 broadcast 192.168.171.255
inet6 fe80::eaa2:384e:60ac:87b1 prefixlen 64 scopeid 0x20<link>
注意:ssh-copy 命令格式有两种:1)ssh-copy-id 远端用户@远端 IP #或仅 IP
2)ssh-copy-id -i /root/.ssh/id_rsa.pub 远端用户@远端 IP #或仅 IP
2)管理端 yum 安装 ansible:
[root@localhost ~]# yum -y install epel-release #先安装 epel-release
[root@localhost ~]# yum -y install ansible
[root@localhost ~]# ansible --version
ansible 2.8.5
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/root/.ansible/plugins/modules',
u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/site-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.5 (default, Aug 4 2017, 00:39:18) [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)]
3)管理端配置主机管理: 在 hosts 文件中添加管理主机的 IP 地址列表:
[root@localhost ~]# vim /etc/ansible/hosts
……
## [dbservers]
##
## db01.intranet.mydomain.net
## db02.intranet.mydomain.net
## 10.25.1.56
## 10.25.1.57
[test] #添加一个组名
192.168.171.129 #添加被管理主机的 IP
192.168.171.130 #添加被管理主机的 IP
……
wq
4)管理端 ansible 的相关配置:
[root@localhost ~]# vim /etc/ansible/ansible.cfg
……
host_key_checking = False #禁用每次执行 ansbile 命令检查 ssh key host ,默认注释,开启即可
log_path = /var/log/ansible.log #开启日志记录, 默认注释,开启即可
……
[accelerate]
accelerate_port = 5099 #释放,默认注释,也可改变端口号,此处没改
#accelerate_timeout = 30
#accelerate_connect_timeout = 5.0
# The daemon timeout is measured in minutes. This time is measured
# from the last activity to the accelerate daemon.
#accelerate_daemon_timeout = 30
# If set to yes, accelerate_multi_key will allow multiple
# private keys to be uploaded to it, though each user must
# have access to the system via SSH to add a new key. The default
# is "no".
accelerate_multi_key = yes #释放,默认注释
5)最后测试下在管理机器上批量执行命令管理被管理端
ping 命令,查看被管理端是否活着:
[root@localhost ~]# ansible test -m ping #此处为管理 test 模块,也可其他模块,也用 all,管理所有模块
……
192.168.171.129 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
192.168.171.130 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
可以看出,在每台管理机器上都成功执行了 ping 命令
若机器没开机,则显示:
[root@localhost ~]# ansible test -m ping #此处为管理 test 模块,也可其他模块,也用 all,管理所有模块
192.168.171.137 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: ssh: connect to host 192.168.231.137 port 22:
Connection timed out\r\n",
"unreachable": true
}
2.ansible 的常用模块使用-批量操作机器
1)command 或 shell 模块,执行远程命令,管理被管理端
(都是批量执行命令,shell 更强大,什么都能干,如果需要一些管道等复杂命令的操作,则使用 shell,command 完
成不了,shell 还能执行脚本)
执行远程命令: 以下的 command 也可以用 shell 代替
# ansible 单独模块名 -m command/shell -a "执行的远程命令" #管理单独模块下机器,执行远程机器命令
# ansible all -m command -a "执行的远程命令" #管理所有模块下机器,执行远程机器命令
# ansible test -m command -a "ifconfig|grep ens33" -f 50 #command 执行不了,-f 50 一次显示 50 个主机
# ansible test -m shell -a "ifconfig|grep ens33" -f 50 #shell 可以执行,-f 50 一次显示 50 个主机
192.168.171.130 | CHANGED | rc=0 >>
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
192.168.171.129 | CHANGED | rc=0 >>
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
其他例子:
[root@localhost ~]# ansible test -m command -a "free -m"
192.168.171.129 | CHANGED | rc=0 >>
total used free shared buff/cache available
Mem: 984 124 498 6 361 674
Swap: 2047 0 2047
192.168.171.130 | CHANGED | rc=0 >>
total used free shared buff/cache available
Mem: 984 123 500 6 359 676
Swap: 2047 0 2047
[root@localhost ~]# ansible test -m shell -a "free -m"
192.168.171.130 | CHANGED | rc=0 >>
total used free shared buff/cache available
Mem: 984 123 500 6 359 676
Swap: 2047 0 2047
192.168.171.129 | CHANGED | rc=0 >>
total used free shared buff/cache available
Mem: 984 124 499 6 361 674
Swap: 2047 0 2047
[root@localhost ~]# ansible test -m shell -a "sh /root/a.sh"
192.168.171.129 | CHANGED | rc=0 >>
129
192.168.171.130 | CHANGED | rc=0 >>
130
2)copy 模块,批量发送文件到被管理端或向被管理端文件写内容
copy 模块下常用参数:
src: 推送数据的源文件信息
dest: 推送数据的目录路径
backup: 对推送传送过去的文件,进行原文件备份,再接收新文件
content: 直接批量在被管理端文件中添加内容
group: 将本地文件推送到远端,指定文件属组信息
owner: 将本地文件推送到远端,指定文件属主信息
mode: 将本地文件推动到远端,指定文件权限信息
剩余19页未读,继续阅读
资源评论
运维实战帮
- 粉丝: 78
- 资源: 420
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 目标跟踪-基于目标中心点同时进行目标检测+目标跟踪算法实现-项目源码-优质项目实战.zip
- Python《文本特征分析-全唐诗数据挖掘及分析 》+源代码
- Netron-Setup-4.5.0
- 可编辑的地图图形3-世界、各洲、美国地图.xls
- NineAi 新版ChatGPT AI系统网站源码
- Anaconda3-2022.10windows版本
- 基于Servlet的URL访问安全控制.doc
- 可编辑的地图图形-2-中国到省、到市、到县地图.xls
- 快慢指针法判断链表是否有环-go语言实现
- Python《金融新闻数据挖掘分析 (数据抓取、NLP算法分析、量化策略、回测框架等)》+源代码+项目说明
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功