我们来批量配置 6 台 influxdb 实例
- 安装 Influxdb 实例
- 配置
- 启动 Influxdb 实例并加入开机启动
- 创建 database
我们不使用 SaltStack,Ansible 等工具,只使用 shell 和 pssh
yum install pssh批量拷贝 Influxdb 安装包
官网地址 · 目标机器是 CentOS 所以我下载的是:influxdb-1.3.7.x86_64.rpm
我们先把这个文件上传到 6 台机器:
#!/bin/bash
if [[ $# != 2 ]]; then
echo usage $0 iplist file
exit 1
fi
for ip in `cat $1`
do
scp $2 root@$ip:~
done这个脚本很好理解,接受两个个参数,分别是 $1 $2($0 是脚本自己的名字:serial_scp.sh)
第一个参数 iplist 是一个文件,保存有目标机器 IP 列表,每行一个
➜ cat iplist
172.21.x.x
172.22.x.x
172.23.x.x
172.24.x.x
172.25.x.x
172.26.x.x第二个参数是要传输的文件相对本脚本的路径或者绝对路径,我们使用相对路径
所以我们最终的批量上传命名如下:
sh serial_scp.sh iplist influxdb-1.3.7.x86_64.rpm这样 6 台机器的 ~ 目录,就有一个 influxdb-1.3.7.x86_64.rpm 文件静静的待在那里了
批量安装 Influxdb
安装命令是:
yum localinstall -y influxdb-1.3.7.x86_64.rpm如何批量安装呢,这里就用到了 pssh 命令
pssh -i -l root -h iplist "yum localinstall -y influxdb-1.3.7.x86_64.rpm"- -i 的意思是返回命令执行的标准输出,不加的话只显示成功或者失败
- -l 后面接一个参数,意思是批量执行命令时使用的用户
- -h 后面接一个文件,意思是批量执行的目标 ip
- 最后引号里面的便是要执行的命令了
很简单吧,至此关于批量操作的内容就结束了,后面放几个命令,Influxdb 配置相关的
备份配置:
pssh -l root -h iplist \
"cp /etc/influxdb/influxdb.conf /etc/influxdb/influxdb.conf.old"注意『 \ 』的作用
新配置:
把默认的配置文件 scp 到本地,在本地编辑配置文件,改造一下上面的 serial_scp.sh 脚本即可
权限问题:
pssh -i -l root -h iplist "chown -R influxdb:influxdb /data/lib"启动:
pssh -i -l root -h iplist "service influxdb start"开机启动:
pssh -i -l root -h influxdb "systemctl enable influxdb"创建一个数据库:
pssh -i -l root -h iplist "influx -execute 'create database node'"都大同小异
需要注意的是 pssh 不支持交互式的操作,不过没关系
yum install somepackage在搜索到软件包还会交互式的问你要不要安装,加 -y 即可忽略这个询问,这个上面用到了
python -c "print('Hello world!')"它也不会使你进入交互
influx -execute 'create database ulb' 全文完,求关注