一、查询手册
1、官网
ansible官网地址:https://docs.ansible.com
模块查看路径:https://docs.ansible.com/ansible/latest/collections/ansible/builtin/index.html#plugins-in-ansible-builtin
2、命令
ansible-doc -s command
二、相关脚本
1、服务端与被管理端进行批量免密登陆shell脚本
[root@ansible-server ansible-script]# cat fenfa.sh
#!/bin/bash
#在使用shell的for循环时,如果循环的字符串中间有空格,那么循环时会自动分割
ip_list="192.168.66.11 192.168.66.12 192.168.66.13"
echo '--------------------------------------------'
echo '1. 创建 key'
echo '--------------------------------------------'
ssh-keygen -f ~/.ssh/id_rsa -P ''
echo '--------------------------------------------'
echo '2. 分发 pub key'
echo '--------------------------------------------'
for ip in $ip_list
do#sshpass指定服务器用户登陆密码,非交互式sshpass -p '123' ssh-copy-id -i ~/.ssh/id_rsa.pub -o StrictHostKeyChecking=no root@$ip
done
检查是否免密登陆的检查脚本
[root@ansible-server ansible-script]# cat ssh_check.sh
#!/bin/bash
#desc 批量检查脚本
ip_list="192.168.66.11 192.168.66.12 192.168.66.13"
echo '--------------------------------------------'
echo '批量执行命令'
echo '--------------------------------------------'
for ip in $ip_list
do#$@:表示获取执行脚本传入的所有参数ssh root@$ip $@
done
执行脚本
sh ssh_check.sh hostname
三、常用模块
1、script模块
[root@ansible-server ansible]# cat /data/ansible-script/yum.sh
yum -y install ipvsadm[root@ansible-server ansible]# cat hosts
[k8s-master]
192.168.66.11[k8s-node]
192.168.66.12 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass='123'
192.168.66.13 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass='123'[k8s:children]
k8s-master
k8s-node#执行ansible命令
ansible k8s-node -m script -a '/data/ansible-script/yum.sh'#执行脚本之后就可以将脚本传到被管理端上,并执行脚本,执行之后,缓存的脚本会被清除