输出一个正确运行的上面的脚本
时间: 2024-03-05 09:53:16 浏览: 42
http-server后台运行脚本
好的,下面是一个改进后的脚本,可以实现批量部署和解压文件:
```bash
#!/bin/bash
HOSTS_FILE=./host_test
function list_groups {
# cat 命令将 host_test 文件的内容输出,grep 命令去掉 all 组
cat $HOSTS_FILE | grep -v "all:vars" | awk '{print $1}'
}
function choose_hosts {
local choice
echo "请选择要操作的主机或主机组(按数字键选择):"
echo "1. 单独的 IP 主机"
echo "2. 主机组"
echo "3. 所有主机"
read -p "请输入数字:" choice
case $choice in
1) read -p "请输入 IP 地址:" hosts;;
2) read -p "请选择主机组:" -i "$(list_groups | tr '\n' ' ')" -e group_name
hosts="--limit @$HOSTS_FILE:$group_name";;
3) hosts="--limit @$HOSTS_FILE";;
*) echo "无效的输入" && choose_hosts;;
esac
}
choose_hosts
# 执行命令
filename=your_file_name.tgz
ansible -i $HOSTS_FILE $hosts -m copy -a "src=./$filename dest=/data/bilxf/ mode=0755" &&
if [ $? -eq 0 ]; then
echo "批量部署成功"
ansible -i $HOSTS_FILE $hosts -m shell -a "tar -zxvf /data/bilxf/$filename" &&
echo "批量解压成功"
else
echo "批量部署失败"
fi
```
这个脚本主要是将 `HOSTSFILE` 改为了 `$HOSTS_FILE`,并且在 `choose_hosts` 函数中,使用了正确的 inventory 文件路径。此外,还对一些变量的赋值做了修改。
阅读全文