SaltStack脚本安装

无聊,近期痴迷编程,没事就写写shell和Python代码练练手。

这次写了个自动安装saltstack的shell代码菜单

功能比较low,相对比较省事。多台主机安装方便。仅供参考,大佬勿喷

 

 #!/bin/bash


#颜色控制
red='\033[1;31m'
black='\033[0m'
Orange='\033[35m'
background='\033[0m'
minion_file='/etc/salt/minion'
datetime=`date +"%F %T"`

#判断软件是否安装
function if_installed(){
    salt_name=$1
    salt_status=`rpm -qa | grep $salt_name`
    if [  ! -n "$salt_status" ];then
        echo "$salt_name没有安装"
        return 2
    else
        echo "$salt_name已经安装"
        echo $salt_status
    fi
    
}

#安装master组件
function install_master(){
    salt_name=$1
    if_installed $salt_name
    if [ $? -eq 2 ];then
        yum install -y https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm
        sed -i "s/repo.saltstack.com/mirrors.aliyun.com\/saltstack/g" /etc/yum.repos.d/salt-latest.repo
        yum install -y $salt_name
        systemctl enable $salt_name
        systemctl start $salt_name	
        echo "s$salt_name已经安装"
    fi 
}


#4)salt-minion配置
function salt-minion(){
    read -p "请输salt-master的IP:" master_ip
	if [ ! -n "$master_ip" ];then
		echo "未获取salt-master的IP,无法配置salt-minion"
	else
		if [ -f "$minion_file" ]; then
            num1=`grep -vE '^#|^$' $minion_file | grep master |wc -l `
            old_ip=`grep -vE '^#|^$' $minion_file | grep master | awk -F ":"  '{print $2}'`
            if [ $num1 -eq 0 ];then
                sed -i "17i master: $master_ip" $minion_file
                echo "salt-minion配置salt-master的IP为:$master_ip"
            else
                sed  -i "s/$old_ip/$master_ip/"  $minion_file
                echo "salt-minion配置salt-master的IP为:$master_ip"
            fi
        
        else
            echo "$minion_file文件不存在"
        fi
	fi
}


#删除软件
function salt_remove(){
    salt_name=$1
    salt_status=`rpm -qa | grep $salt_name`
    if [  ! -n "$salt_status" ];then
        echo "$salt_name没有安装"
    else
        rpm -qa | grep $salt_name | xargs rpm -e
        if [ $? -eq 0 ];then
            echo "$salt_name已经卸载"
        fi
    fi
}

#重启服务
function salt_restart(){
    salt_name=$1
    if_installed $salt_name
    if [ $? -eq 2 ];then
        echo ""
    else
        systemctl restart $salt_name
        echo "$salt_name已经重启"
    fi
}



#菜单
function menu()
{
echo -e "         $datetime"
cat <<EOF
--------------------------------------------
`echo -e "        $black SaltStack菜单主页$background"`
`echo -e "$Orange  1)安装slat-master $background"`    `echo -e "$Orange   2)安装salt-minion$background"`
`echo -e "$Orange  3)是否软件安装查询$background"`     `echo -e "$Orange   4)salt-minion配置$background"`
`echo -e "$Orange  5)卸载slat-master$background"`      `echo -e "$Orange  6)卸载slat-minion$background"`
`echo -e "$Orange  7)重启slat-master$background"`      `echo -e "$Orange  8)重启slat-minion$background"`
`echo -e "$Orange  Q)退出$background"`                
--------------------------------------------
EOF
read -p "请输入对应序列号:" num1
case $num1 in
    1)
    install_master salt-master
    menu
    ;;
    2)
    install_master salt-minion
    menu
    ;;
    3)
    if_installed salt-master
    if_installed salt-minion
    menu
    ;;
    4)
    salt-minion
    menu
    ;;
    5)
    salt_remove salt-master
    menu
    ;;
    6)
    salt_remove salt-minion
    menu
    ;;
    7)
    salt_restart salt-master
    menu
    ;;
    8)
    salt_restart salt-minion
    menu
    ;;
    Q|q)
    exit 0
    ;;
    *)
    echo -e "\033[31m err:请输入正确的编号\033[0m"
    menu
esac
}

menu

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
安装SaltStack 3004,你需要在一台主机上安装一个master和多个minion。首先,使用以下命令安装master: sudo yum install salt-master 接下来,使用以下命令安装minion: sudo yum install salt-minion 然后,启动master和minion。使用以下命令启动master: sudo systemctl enable salt-master && sudo systemctl start salt-master 使用以下命令启动minion: sudo systemctl enable salt-minion && sudo systemctl start salt-minion SaltStack有四种运行方式: 1. local本地运行:在Master上向Minion发送命令和配置,适用于实时监控、状态和库存。 2. Master/Minion传统方式:Master向Minion发送命令和配置,Minion从Master接收命令和配置,适用于一次性命令和脚本、部署关键更新等。 3. Syndic分布式:用于将命令和配置转发到其他Master,适用于跨多个区域或数据中心的环境。 4. Salt SSH:通过SSH在没有Minion的系统上运行Salt命令。 SaltStack的组件包括: - Salt Master:将命令和配置发送到受管系统上运行的Salt Minion。 - Salt Minion:从Salt Master接收命令和配置。 - Execution Modules:在命令行针对一个或多个受管系统执行的临时命令。 - Formulas (States):系统配置的声明性或命令式表示。 - Grains:有关底层受管系统的静态信息,包括操作系统、内存等系统属性。 - Pillar:用户定义的变量,在Salt Master中定义并存储,然后分配给一个或多个Minion。 - Top File:将Formulas (States)和Salt Pillar数据与Salt Minions匹配。 - Runners:在Salt Master上执行的模块,用于执行支持任务。 - Returners:将Salt Minions返回的数据发送到另一个系统,例如数据库。 - Reactor:在SaltStack环境中发生事件时触发反应。 - Salt Cloud / Salt Virt:在云提供商/虚拟机管理程序上提供系统,并立即将其置于管理之下。 这些是SaltStack的核心组件和运行方式。你可以根据具体需求选择适合的方式来安装和配置SaltStack

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南宫乘风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值