StaltStack 應(yīng)用場景
當(dāng)使用terraform構(gòu)建基礎(chǔ)組件,或者基于AWS user date進(jìn)行saltstack安裝時(shí),進(jìn)行如下條件安裝:
- 原始機(jī)器中安裝了salt-minion,可能版本不統(tǒng)一或者版本較低(如果是在新的環(huán)境下安裝,需要調(diào)整安裝腳本的順序,先安裝salt-minion,后配置和重啟)
- SaltStack salt-minion 安裝自動(dòng)化
- 對salt-minion進(jìn)行統(tǒng)一配置
下面的腳本可用于在centos上自動(dòng)安裝和配置salt-minion,可以根據(jù)此腳本修改為其它環(huán)境的安裝。
SaltStack 安裝腳本完整源碼
#!/bin/bash
systemctl stop salt-minion
sleep 5
systemctl restart rsyslog
echo "master: 10.23.3.227" >> /etc/salt/minion.d/master.conf
echo `hostname` > /etc/salt/minion_id
echo "environment: water" >> /etc/salt/minion.d/environment.conf
echo "pillarenv: water" >> /etc/salt/minion.d/environment.conf
echo "hostname: `hostname`" >> /etc/salt/grains
echo "env: production" >> /etc/salt/grains
echo "location: x" >> /etc/salt/grains
echo "project: water" >> /etc/salt/grains
echo "app: water" >> /etc/salt/grains
echo "service: water" >> /etc/salt/grains
echo "startup_states: highstate" >> /etc/salt/minion.d/startup.conf
yum remove -y salt
yum remove -y salt-minion
cat > /etc/yum.repos.d/saltstack-rhel7.repo << EOF
[saltstack-rhel7]
gpgcheck=0
enabled=1
baseurl=https://arti.ss.aws.fwmrm.net/saltstack-7-x86_64-2017.7/
name=saltstack-rhel7
EOF
yum clean all
yum install -y salt-minion
sleep 5
systemctl start salt-minion
SaltStack安裝腳本分析
安裝
移除原有saltstack并安裝
systemctl stop salt-minion
sleep 5
systemctl restart rsyslog
yum remove -y salt
yum remove -y salt-minion
cat > /etc/yum.repos.d/saltstack.repo << 'EOF'
[saltstack-repo]
name=SaltStack repo for Red Hat Enterprise Linux $releasever
baseurl=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest
enabled=1
gpgcheck=1
gpgkey=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest/SALTSTACK-GPG-KEY.pub
https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest/base/RPM-GPG-KEY-CentOS-7
EOF
yum clean all
yum install -y salt-minion
sleep 5
systemctl start salt-minion
rsyslog是比syslog功能更強(qiáng)大的日志記錄系統(tǒng),可以將日志輸出到文件,數(shù)據(jù)庫和其它程序。
不使用此日志系統(tǒng)的機(jī)器,可以跳過此步
使用自定義的repo
如果需要對salt-minion的安裝源進(jìn)行控制,可以添加適合自己的saltstack centos repo, 例如,
cat > /etc/yum.repos.d/saltstack-rhel7.repo << EOF
[saltstack-rhel7]
gpgcheck=0
enabled=1
baseurl=https://${your repo host domain}/saltstack-7-x86_64-2017.7/
name=saltstack-rhel7
EOF
配置
基礎(chǔ)配置
基礎(chǔ)配置可以放在minion的配置文件/etc/salt/minion中,也可以單獨(dú)放在/etc/salt/minion.d/目錄中( default_include)
echo "master: 10.23.3.227" >> /etc/salt/minion.d/master.conf
echo `hostname` > /etc/salt/minion_id
echo "environment: water" >> /etc/salt/minion.d/environment.conf
echo "pillarenv: water" >> /etc/salt/minion.d/environment.conf
- master 用于配置saltstack master 地址
- minion_id 用于配置minion的唯一標(biāo)示
- environment 用于配置salt-minion匹配的salt環(huán)境
- pillarenv 用于配置salt-minion匹配的pillar環(huán)境
grains 配置
grains的配置可以放在minion的配置文件/etc/salt/minion中,也可以單獨(dú)放在/etc/salt/grains中(grains配置)
echo "hostname: `hostname`" >> /etc/salt/grains
echo "env: production" >> /etc/salt/grains
echo "location: x" >> /etc/salt/grains
echo "project: water" >> /etc/salt/grains
echo "app: water" >> /etc/salt/grains
echo "service: water" >> /etc/salt/grains
env用于區(qū)分環(huán)境, 例如,dev, stg, prd
location用于擴(kuò)展
project用于區(qū)分不同的工程
app用于區(qū)分不同的產(chǎn)品
service用于區(qū)分產(chǎn)品中不同的服務(wù)
參考