shell指令碼部署無密碼訪問

2021-09-02 15:38:54 字數 1668 閱讀 9134

為了實現一些元件的自動化部署,可能要設定伺服器的免密訪問比較方便,最後實現了自動化部署密碼指令碼,以下為實現**邏輯。**比較龐大,不能一一道出了。

#!/bin/bash

ips=( '10.100.112.79' '10.100.112.203' '10.100.112.204' '10.100.112.205' '10.100.112.95' '10.100.112.125' ) //所有關聯ip

masterlenth=4 //ips集合前幾個需要配置無密訪問

gname=hgroup

uname=root //無密訪問賬號(要先生成root無密訪問許可權)

password="123456" //無密訪問密碼

currpath=$pwd

hostip=` /sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk ''|tr -d "addr:" `//獲取本機ip ,

echo "host_ip$hostip"

#如果是root許可權,先生從root免密密匙

if [ "$uname" = "root" ];then

ssh root@$ yum install -y expect

expect <$ip"

fiif [ "$ip" = "$hostip" ];then

echo "$hostip"

sh $currpath/useradd.sh $gname $uname $password

# rm -rf /usr/$uname/.ssh

# sh apecttest.sh $gname $uname $name $ip

else

# echo $

# ssh $ mkdir -p $currpath -m 777

# scp -r $currpath/base root@$:$currpath/

# scp $currpath/useradd.sh root@$:$currpath/

if [ "$uname" -ne "root" ];then

#新增賬號[url]

ssh $ $currpath/useradd.sh $gname $uname $password

fifi

done

#給ips前masterlenth伺服器賦予免密訪問所有機器的許可權,這類機器暫時簡稱master

for((i=0;i>$"

expect

expect

"*id_rsa):"

"*(y/n)?"

"*passphrase):"

"*again:"

}expect eof

eoffi

done

#給所有master授權免密訪問所有機器

for ip in $

dofor((i=0;idoif [ "$" = "$hostip" ];then

sh $currpath/resrsa.sh $ip $uname $password

else

ssh root@$ "$currpath/resrsa.sh $ip $uname $password"

fidone

done

指令碼部署openstack

本文把openstack部署的所有命令整理成乙個完整的指令碼,乙個指令碼解決所有問題。一般部署分三步 1,安裝openstack包 2,修改配置檔案 3,執行這個指令碼。來,試一下 在python下 import mydeploy mydeploy.deploy all 如果想重置資料庫,例如nov...

shell指令碼部署lnmp電商或者論壇

bin bash echo 防火牆 systemctl stop firewalld 關閉防火牆 echo 防火牆已關閉 echo selinux se setenforce 0 echo seecho selinux許可權已關閉 selinux echo 檢測nginx是否安裝 ng nginx ...

Vue React專案使用shell指令碼部署

執行 npm run deploy test或npm run deploy publish為正式和測試兩個環境 usr bin env bash 任意命令出錯時終止執行 set e red 033 0 31m yellow 033 1 33m green 033 0 32m reset 033 0m...