一、查询手册

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'

#执行脚本之后就可以将脚本传到被管理端上,并执行脚本,执行之后,缓存的脚本会被清除

在这里插入图片描述

更多推荐