CentOS6.5 SaltStackの導入
15107 ワード
ディレクトリsaltstackとは?Saltstackはサーバインフラストラクチャの集中化管理プラットフォームであり、構成管理、リモート実行、モニタリングなどの機能を備えており、一般的に簡略化版のpuppetと強化版に基づくfuncと理解できる.SaltStackはPython言語に基づいて実現され、軽量レベルのメッセージキュー(ZeroMQ)とPythonサードパーティモジュール(Pyzmq、PyCrypto、pyjinja 2、python-msgpack、PyYAMLなど)を組み合わせて構築される.Saltstackには次のような特徴があります.導入が簡単で便利な はUNIX/LinuxおよびWindows環境の大部分をサポートする 主従集中化管理 配置が簡単で、機能が強く、拡張性が強い マスタ端子(Master)と被制御端子(minion)は、証明書認証に基づいて安全で信頼性の高い である.はAPIとカスタムモジュールをサポートし、Pythonで を簡単に拡張できる.
参照ドキュメント:プロジェクトアドレス:https://github.com/saltstack/salt公式サイトのアドレス:http://www.saltstack.com公式ドキュメント:http://docs.saltstack.com OR http://docs.saltstack.cn開発言語:Python運転モード:C/S一、環境紹介
HostName
IP
Service
Master
192.168.179.100
salt-master
Minion
192.168.179.101
salt-minion
基本用語
説明
maste
コントロールセンター、saltコマンド実行とリソースステータス管理端
minion
管理が必要なクライアントマシンは、master側にアクティブに接続し、master側からリソース状態情報を取得し、リソース管理情報を同期します.
states
管理命令セットの構成
grains
minion端の静的変数
pillar
minion端の動的変数
highstate
minionにステータスを永続的に追加し、slsプロファイルから読み込む
salt schedule
クライアント構成の自動保持
二、設置前の準備(全ての機器で行う必要がある)2.1 Hostの追加
2.2ファイアウォールを閉じる
2.3 Selinuxを閉じる
2.4 SaltStackをインストールするyumソース
三、SaltStackMasterインストール3.1 hostnameの設定
3.2 Salt-masterのインストール
3.3 salt-masterの構成
3.4セキュリティ認証の構成
現在の表示
すべてのkeyを受信
3.5 salt-masterの起動
正常に起動したかどうかを確認
Minionインストール
3.6 hostnameの設定
3.7 Salt-minionのインストール
3.8 Salt-minionの構成
3.9 Salt-minionの起動
四、テストはmaster機械でテストpingを実行する
テスト実行df-h
五、自動スクリプト、以下を参照してください.
注意:このすべての導入は完了しました.この構築中に問題が発生した場合は、dba_にメールを送信できます[email protected]
参照ドキュメント:プロジェクトアドレス:https://github.com/saltstack/salt公式サイトのアドレス:http://www.saltstack.com公式ドキュメント:http://docs.saltstack.com OR http://docs.saltstack.cn開発言語:Python運転モード:C/S一、環境紹介
HostName
IP
Service
Master
192.168.179.100
salt-master
Minion
192.168.179.101
salt-minion
基本用語
説明
maste
コントロールセンター、saltコマンド実行とリソースステータス管理端
minion
管理が必要なクライアントマシンは、master側にアクティブに接続し、master側からリソース状態情報を取得し、リソース管理情報を同期します.
states
管理命令セットの構成
grains
minion端の静的変数
pillar
minion端の動的変数
highstate
minionにステータスを永続的に追加し、slsプロファイルから読み込む
salt schedule
クライアント構成の自動保持
二、設置前の準備(全ての機器で行う必要がある)2.1 Hostの追加
# echo -e "192.168.179.100 master
192.168.179.101 minion-1" >> /etc/hosts
2.2ファイアウォールを閉じる
# service iptables stop
# chkconfig iptables off
2.3 Selinuxを閉じる
# sed -i 's/SELINUX=.*$/SELINUX=disabled/g' /etc/selinux/config
# setenforce 0
2.4 SaltStackをインストールするyumソース
# yum -y install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el6.noarch.rpm
# yum clean expire-cache
三、SaltStackMasterインストール3.1 hostnameの設定
# sed -i 's/HOSTNAME=.*$/HOSTNAME=master/g' /etc/sysconfig/network
3.2 Salt-masterのインストール
# yum -y install salt-master
3.3 salt-masterの構成
# cp /etc/salt/master /etc/salt/master-example
# sed -i 's/#interface/interface/g' /etc/salt/master
# egrep -v "^#|^$" /etc/salt/master
3.4セキュリティ認証の構成
現在の表示
# salt-key -L
Accepted Keys:
Denied Keys:
Unaccepted Keys:
Rejected Keys:
すべてのkeyを受信
# salt-key -A
3.5 salt-masterの起動
# service salt-master start
# chkconfig salt-master on
正常に起動したかどうかを確認
# cat /var/run/salt-master.pid
Minionインストール
3.6 hostnameの設定
# sed -i 's/HOSTNAME=.*$/HOSTNAME=minion-1/g' /etc/sysconfig/network
3.7 Salt-minionのインストール
# yum -y install salt-minion
3.8 Salt-minionの構成
# cp /etc/salt/minion /etc/salt/minion-example
# sed -i 's/#master: salt/master: master/g' /etc/salt/minion
3.9 Salt-minionの起動
# service salt-minion start
# chkconfig salt-minion on
四、テストはmaster機械でテストpingを実行する
# salt '*' test.ping
minion-1:
True
テスト実行df-h
# salt '*' cmd.run 'df -h'
minion-1:
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_centos6-lv_root
18G 1.7G 15G 11% /
tmpfs 490M 12K 490M 1% /dev/shm
/dev/sda1 477M 63M 389M 14% /boot
五、自動スクリプト、以下を参照してください.
# cat /export/zlyang/autoSaltStackInstall.sh
#!/bin/bash
################################################
# #
# author: Zlyang by 2019-08-28 #
# description: Auto Install SaltStack #
# #
################################################
INSTALL_TIME=`date +%F\ %T`
CURRENTDIR=`pwd`;
LOGFILE="${CURRENTDIR}/salt_install.log";
ISCLOSEFIREWALLFIREWALL="yes";
ISCLOSESELINUX="yes";
ready(){
printf "" > ${LOGFILE}
printf " :${INSTALL_TIME}
" >> ${LOGFILE}
printf "
"
printf "\033[31m Host , IP , :\033[0m
"
printf "\033[31m %-12s %-10s \033[0m
" 192.168.1.1 master
printf "\033[31m *
*
\033[0m"
printf "
"
printf " :
" |tee -a ${LOGFILE}
stop_iptables;
close_selinux;
printf "
SaltStack Repo :
" |tee -a ${LOGFILE}
install_salt_repo;
printf "
SaltStack:
"|tee -a ${LOGFILE}
install_salt;
}
stop_iptables(){
printf "\033[31m
( , ! \033[31m 4505 \033[0m \033[31m 4506 \033[0m )
\033[0m"
printf " :
"
read -p "[yes/no] :" ISCLOSEFIREWALL
case "${ISCLOSEFIREWALL}" in
Y|y|yes|YES)
/etc/init.d/iptables stop 2>&1 >>/dev/null
if [[ $? == 0 ]];then
printf "\t ......[\033[32m \033[0m ]
"|tee -a ${LOGFILE}
fi
;;
n|N|no|NO)
printf "\033[31m \t , 4505 4506 \033[0m
"|tee -a ${LOGFILE}
exit 1
;;
*)
printf "\033[31m \t , 4505 4506 \033[0m
"|tee -a ${LOGFILE}
exit 1
;;
esac
}
close_selinux(){
printf "\033[31m
( SELinux, SaltStack )
\033[0m"
printf " SELinux:
"
read -p "[yes/no] :" ISCLOSESELINUX
case "${ISCLOSESELINUX}" in
Y|y|yes|YES)
sed -i 's/SELINUX=.*$/SELINUX=disabled/g' /etc/selinux/config
ISDISABLED=`getenforce`;
case "${ISDISABLED}" in
Disabled)
printf "\tSELinux
"|tee -a ${LOGFILE}
;;
Enforcing)
setenforce 0
if [[ $? == 0 ]];then
printf "\tSELinux ......[\033[32m \033[0m ]
"|tee -a ${LOGFILE}
fi
;;
*)
printf "\t\033[31m SELinux, :\"setenforce 0 && reboot \"
"|tee -a ${LOGFILE}
printf "\t\033[31m
"|tee -a ${LOGFILE}
printf "\033[31m \t SELinux, SaltStack !\033[0m
"|tee -a ${LOGFILE}
;;
esac
;;
n|N|no|NO)
printf "\t\033[31m SELinux, :\"setenforce 0 && reboot \"
"|tee -a ${LOGFILE}
printf "\t\033[31m
"|tee -a ${LOGFILE}
printf "\033[31m \t SELinux, SaltStack !\033[0m
"|tee -a ${LOGFILE}
;;
*)
printf "\t\033[31m SELinux, :\"setenforce 0 && reboot \"
"|tee -a ${LOGFILE}
printf "\t\033[31m
"|tee -a ${LOGFILE}
printf "\033[31m \t SELinux, SaltStack !\033[0m
"|tee -a ${LOGFILE}
;;
esac
}
install_salt_repo(){
ISINSTALL=`rpm -qa|grep salt-repo-latest-2.el6.noarch`;
if [[ -z ${ISINSTALL} ]];then
yum -y install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el6.noarch.rpm 2>&1 >> ${LOGFILE}
if [[ $? == 0 ]];then
printf "\tsalt-repo ......[\033[32m \033[0m ]
"|tee -a ${LOGFILE}
else
printf "\tsalt-repo ......[\033[31m \033[0m ]
"|tee -a ${LOGFILE}
exit 1
fi
else
printf "\t salt-repo, !
"|tee -a ${LOGFILE}
fi
}
install_salt(){
printf "
:
\t1:Salt-Master(Server )
\t2:Salt-Minion(Client )
\tq:
:"
read CHOICE_SYSTEM
case ${CHOICE_SYSTEM} in
1)
printf "\t Salt-Master:
" |tee -a ${LOGFILE}
yum -y install salt-master |tee -a ${LOGFILE}
if [ $? == "0" ]; then
LOCAL_IP=`ifconfig|grep broadcast|awk '{print $2}'`;
CONFIG_FILE="/etc/salt/master";
if [ -f ${CONFIG_FILE} ]; then
printf "\t :Salt-Master ......[\033[32m \-33[0m ]
" |tee -a ${LOGFILE}
printf "\t
:
" |tee -a ${LOGFILE}
cp /etc/salt/master /etc/salt/master-example
sed -i 's/#interface/interface/g' ${CONFIG_FILE}
printf "#################################
" |tee -a ${LOGFILE}
egrep -v "^#|^$" /etc/salt/master |tee -a ${LOGFILE}
printf "#################################
" |tee -a ${LOGFILE}
printf "
:
" |tee -a ${LOGFILE}
printf "
\033[31m ( Pending ;)\033[0m
" |tee -a ${LOGFILE}
salt-key -A && salt-key -L
printf "
.......[ \033[32m \033[0m ]
" |tee -a ${LOGFILE}
printf "
Salt-Master
" |tee -a ${LOGFILE}
service salt-master start
PID=`cat /var/run/salt-master.pid`
if [ ! -z ${PID} ]; then
printf "
\t Salt-Master .......[\033[32m \033[0m ]
" |tee -a ${LOGFILE}
printf "\t :
"
printf "\t( :Yes)
"
read -t 5 -p "[yes/no]:" DEFAULT_START
case "${DEFAULT_START}" in
y|Y|YES|yes)
chkconfig salt-master on
printf "
\t Salt-Master .......[\033[32m \033[0m ]
" |tee -a ${LOGFILE}
;;
n|N|no|NO)
printf "\t , :\"chkconfig salt-master on\"
"
;;
*)
chkconfig salt-master on
printf "
\t Salt-Master .......[\033[32m \033[0m ]
" |tee -a ${LOGFILE}
;;
esac
for((i=0;i<6;i++)); do
printf "*
"
sleep 0.8
done
printf "
\033[32m !SaltStack !\033[0m
"
exit 0
else
printf "
\t Salt-Master .......[\033[31m \033[0m ]
" |tee -a ${LOGFILE}
fi
else
printf "\t \033[31m , !\033[0m
"
exit 1
fi
else
printf "\t :salt-master ......[\033[31m \-33[0m ]
" |tee -a ${LOGFILE}
exit 1
fi
;;
2)
printf "\t Salt-Minion:
" |tee -a ${LOGFILE}
yum -y install salt-minion
if [ $? == "0" ]; then
CONFIG_FILE="/etc/salt/minion";
if [ -f ${CONFIG_FILE} ]; then
printf "\t :Salt-Minion ......[\033[32m \-33[0m ]
" |tee -a ${LOGFILE}
printf "\t
:
" |tee -a ${LOGFILE}
cp /etc/salt/minion /etc/salt/minion-example
read -p " Salt-Master IP :" SERVER_IP
sed -i "s/#master: salt/master: ${SERVER_IP}/g" ${CONFIG_FILE}
printf "#################################
" |tee -a ${LOGFILE}
egrep -v "^#|^$" /etc/salt/minion |tee -a ${LOGFILE}
printf "#################################
" |tee -a ${LOGFILE}
service salt-minion start
PID=`cat /var/run/salt-minion.pid`
if [ ! -z ${PID} ]; then
printf "
\t Salt-Minion .......[\033[32m \033[0m ]
" |tee -a ${LOGFILE}
printf "\t :
"
printf "\t( :Yes)
"
read -t 5 -p "[yes/no]:" DEFAULT_START
case "${DEFAULT_START}" in
y|Y|YES|yes)
chkconfig salt-minion on
printf "
\t Salt-Minion .......[\033[32m \033[0m ]
" |tee -a ${LOGFILE}
;;
n|N|no|NO)
printf "\t , :\"chkconfig salt-minion on\"
"
;;
*)
chkconfig salt-minion on
printf "
\t Salt-Minion .......[\033[32m \033[0m ]
" |tee -a ${LOGFILE}
;;
esac
for((i=0;i<6;i++)); do
printf "*
"
sleep 0.8
done
printf "
\033[32m !SaltStack !\033[0m
"
exit 0
else
printf "
\t Salt-Minion .......[\033[31m \033[0m ]
" |tee -a ${LOGFILE}
exit 1
fi
else
printf "\t :Salt-Minion ......[\033[31m \033[0m ]
" |tee -a ${LOGFILE}
exit 1
fi
else
printf "\t :Salt-Minion ......[\033[31m \033[0m ]
" |tee -a ${LOGFILE}
exit 1
fi
;;
q|Q|quit|exit)
exit 0
;;
*)
install_salt;
;;
esac
}
ready;
注意:このすべての導入は完了しました.この構築中に問題が発生した場合は、dba_にメールを送信できます[email protected]