#目的
在一个k8s集群内的每台机器上运行某一个脚本,例如,/tmp/script.sh
#步骤
1)写一个脚本收集集群内所有机器的IP生成hosts.ini
#!/bin/bash
fileName=hosts.ini
groupName=k8s
kubectl get nodes -o wide | awk '{print $6}' > ${fileName}
sed -i "s/$/& ansible_ssh_user={username}/g" ${fileName}
sed -i "1c[${groupName}]" ${fileName}
备注:倒数第二行是说ansible运行的用户名,没有root权限的话需要加上这个。
- ansible script模块运行
ansible all -m script -a "/tmp/script.sh" -i hosts.ini -k -K
备注:如果没有设置免密登陆,那么需要加上-k -K参数输入密码,一般而言集群内每台机器密码是一样的。