ansible 修改文件变量_「Linux工作日常」ansible环境初始化一键部署脚本(三台服务器)...

支持centos7.x 工作需要,需要在三台服务器配置好ansible环境

master slave01 slave02

实现:图形化交互式 master节点执行脚本,一键配置好三台的ansible环境(面交互登录)

56f99440152d7c3692afd76a99e53987.png

三台服务器的root密码必须一致,最好避免特殊字符

5d31d413edd047fcf825d1bc5fdd9e29.png

会自动检测本机的ip地址,此脚本必须在master节点执行,默认会自动检测本机ip

a63dc38593c83132d2cf8de71ecafc31.png

输入slave01节点的ip地址

f5d3794dd021ad57b8b0abfd5b9d36ce.png

输入slaver02节点ip信息

效果:master节点免交互登录 slave01 slave02节点,自动修改三台主机主机名

8becd8c6003f4a4b0ad272cc6b379362.png
4e1a2f02c1898682c0d8d1bd0905967f.png
5c40b69353b3349457db7fd6a89d987f.png
0a7fb9ea4f4d0cafab45c945595c1cd6.png

代码附上(可以根据自己需求修改,我工作中 目前就用到三台 哈哈 需要大量的可以把交互式窗口那里的变量改成自己对应的ip列表文件路径)

#!/bin/bash#图形化交互式 引导填写集群ip 密码信息.批量配置ansible环境,批量设置主机名.ansible主节点从节点分组完毕.#此脚本在master主机执行.#交互式ip导入_huoqujiqunip () {rpm -aq | grep net-tools || yum install net-tools -y > /dev/null#检测本机master IP地址IP=`/sbin/ifconfig -a | grep inet | grep -v 127.0.0.1 | grep -v inet6 |grep -v 172.17.0.1 | awk '{print $2}' | tr -d "addrs"`password_=$(whiptail --title "#请输入集群服务器统一的root密码 并回车#" --passwordbox "请确认所有节点root密码一致,确定提交?" 10 60 3>&1 1>&2 2>&3)master_hosts_=$(whiptail --title "#请输入本机Ip(master)并回车#" --inputbox "请检查IP是否一致,确定提交?" 10 60 "$IP" 3>&1 1>&2 2>&3)#slave地址获取slave01_hosts_=$(whiptail --title "#请输入slave01节点IP并回车#" --inputbox "请检查IP是否与slave01节点一致,确定提交?" 10 60 "" 3>&1 1>&2 2>&3)slave02_hosts_=$(whiptail --title "#请输入slave02节点IP并回车#" --inputbox "请检查IP是否与slave02节点一致,确定提交?" 10 60 "" 3>&1 1>&2 2>&3)}_huoqujiqunip slave_ip="$slave01_hosts_ $slave02_hosts_"yum install ansible libselinux-python sshpass -y > /dev/nullecho "=============172.168.1.0.===key fen fa======info========================" #清除本地ssh环境m -f ~/.ssh/*#创建秘钥对ssh-keygen -t dsa -f /root/.ssh/id_dsa -N "" &>/dev/null#配置免交互登录for ip in $slave_ipdosshpass -p "$password_" ssh-copy-id -i /root/.ssh/id_dsa.pub root@$ip -o StrictHostKeyChecking=no if [ $? -eq 0 ]  then echo " host $ip 成功!!!!" else echo " host $ip 失败!!!!"  exit 1 fi doneechoecho echo "=============end=====END========================" #检测分发效果连通性for ip in $slave_ipdo echo "==============host $ip info============================" grep master /etc/hostname || hostnamectl set-hostname master ssh root@$ip " ip ad |grep $slave01_hosts_" && ssh root@$ip "hostnamectl set-hostname slave01" ssh root@$ip " ip ad |grep $slave02_hosts_ " && ssh root@$ip "hostnamectl set-hostname slave02" ssh root@$ip "w"done  echo "===========END==================END====================="###配置ansible hosts文件grep master /etc/ansible/hosts || {cat >>/etc/ansible/hosts<
50101fccc3b7ec70fc84988a48328a3a.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值