前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >saltstack实践 - 自动化平台部署

saltstack实践 - 自动化平台部署

作者头像
以谁为师
发布2019-05-29 18:13:38
9960
发布2019-05-29 18:13:38
举报
文章被收录于专栏:小网管的运维之路

saltstack实践 - 自动化平台部署

saltstack 实践

部署

master 服务端

  • 安装shell
代码语言:javascript
复制
yum install salt-master salt-minion  salt-ssh \
salt-syndic salt-cloud salt-api -y

sed -i 's/#master: salt/master: 127.0.0.1/g' /etc/salt/minion
grep -r ^file_roots /etc/salt/master || cat >  /etc/salt/master<< EOF
auto_accept: True
hash_type: sha256

#指定files和pillar环境的路径
file_roots:
  base:
    - /srv/salt/base
  dev:
    - /srv/salt/dev
  prod:
    - /srv/salt/prod

pillar_roots:
  live:
    - /srv/salt/pillar/live
  game:
    - /srv/salt/pillar/game

#主机分组
nodegroups:
   node: 'E@node'
   web: 'E@nginx'
   zk: 'E@zookeeper*'
   redis: 'E@redis*'
   mongo: 'E@mongo*'
   redis_and_mongo: 'E@mongodb* and  E@redis*'
   apps: '* and not N@web and not N@zk and not N@es and not N@mongodb and not N@redis'
   #salt -N apps test.ping #检测应用虚拟机
EOF

systemctl enable salt-master ; chkconfig salt-master on
systemctl enable salt-minion ; chkconfig salt-minion on
systemctl restart  salt-master ; service  salt-master restart
systemctl restart  salt-minion ; service  salt-minion restart

minion 客户端

  • 初始化shell
代码语言:javascript
复制
#yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm 
#centos7 python2
#yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el6.noarch.rpm
#centos6 python
#yum install https://repo.saltstack.com/py3/redhat/salt-py3-repo-latest-2.el7.noarch.rpm 
#centos7 python3



yum remove salt-minion -y &&rm /etc/salt/pki/minion/ -rf # 清理key

yum install salt-minion -y 
[ -f "/etc/salt/minion" ] && cat > /etc/salt/minion <<EOF
master: 192.168.0.11 #ip,dns

id: $HOSTNAME
tcp_keepalive: True
tcp_keepalive_idle: 300
tcp_keepalive_cnt: -1
tcp_keepalive_intvl: -1
EOF

chkconfig salt-minion on &&  service  salt-minion restart
#systemctl enable salt-minion &&  systemctl restart  salt-minion 

架构

双master

同步配置

代码语言:javascript
复制
salt  rsync -av /etc/salt/master  ops-salt-2:/etc/salt/

同步文件

代码语言:javascript
复制
salt  rsync -av /srv  ops-salt-2:/

同步key

代码语言:javascript
复制
salt  rsync -av /etc/salt/pki/master  ops-salt-2:/etc/salt/pki

minion端

/etc/salt/minion

代码语言:javascript
复制
master: 
    - ops-salt-1
    - ops-salt-2

生产要确保配置统一,使用rsync触发同步

syndic 多级扩展

代码语言:javascript
复制
yum install salt-syndic

/etc/salt/master (master)

代码语言:javascript
复制
order_masters: True 
# master端允许开启多层master

/etc/salt/master (syndic)

代码语言:javascript
复制
syndic_master: 10.4.xx.xx  
# syndic端指定master ip

无master - salt-ssh 管理客户端

  • 私钥(salt-ssh.rsa)
  • 公钥初始(salt-ssh.rsa.pub)
代码语言:javascript
复制
mkdir /etc/salt/pki/master/ssh #创建salt-ssh存放目录

cat roster #推荐使用key方便密码管理

代码语言:javascript
复制
account-1-3:
    host: 10.x.x.3
    user: super
    sudo: True

客户端推送key #可以和jumpserver共用

代码语言:javascript
复制
adduser super
su - super -c 'mkdir -p /home/super/.ssh; \
echo >/home/super/.ssh/authorized_keys; \  
echo "ssh-rsa AAAAB*******rsQ== super@jsm-xx">>/home/super/.ssh/authorized_keys; \
chmod 700 /home/super/.ssh; \
chmod 600 /home/super/.ssh/authorized_keys;'


(grep "super" -lr /etc/sudoers)||cat >> /etc/sudoers << EOF
super ALL=(ALL) NOPASSWD: ALL
Defaults:super !requiretty
EOF

初始化客户端

代码语言:javascript
复制
salt-ssh -i '*'  state.sls base.init.env_init  
#初始化,并按照salt-minion

salt '*' state.sls base.init.zabbix.service  pillarenv="live" 
#直播环境装zabbix,渲染hostname;live-redis-1

无master - salt-call

调用本地模块:

代码语言:javascript
复制
salt-call --local cmd.run "uptime"

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年3月21日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • saltstack实践 - 自动化平台部署
  • saltstack 实践
    • 部署
      • master 服务端
      • minion 客户端
    • 架构
      • 双master
      • syndic 多级扩展
      • 无master - salt-ssh 管理客户端
      • 无master - salt-call
相关产品与服务
云直播
云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档