為了實現一些元件的自動化部署,可能要設定伺服器的免密訪問比較方便,最後實現了自動化部署密碼指令碼,以下為實現**邏輯。**比較龐大,不能一一道出了。
#!/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部署的所有命令整理成乙個完整的指令碼,乙個指令碼解決所有問題。一般部署分三步 1,安裝openstack包 2,修改配置檔案 3,執行這個指令碼。來,試一下 在python下 import mydeploy mydeploy.deploy all 如果想重置資料庫,例如nov... bin bash echo 防火牆 systemctl stop firewalld 關閉防火牆 echo 防火牆已關閉 echo selinux se setenforce 0 echo seecho selinux許可權已關閉 selinux echo 檢測nginx是否安裝 ng nginx ... 執行 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...指令碼部署openstack
shell指令碼部署lnmp電商或者論壇
Vue React專案使用shell指令碼部署