设为首页 收藏本站
查看: 834|回复: 0

[经验分享] 安装和配置saltstack

[复制链接]

尚未签到

发表于 2015-11-26 11:25:51 | 显示全部楼层 |阅读模式
安装salt-master
  rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

yum install -y salt-master

mkdir /srv/salt

vim /etc/salt/master

修改



interface: 10.101.20.60

启动salt-master

/etc/init.d/salt-master start

chkconfig salt-master --level 35 on



分组

vim /etc/salt/master

nodegroups:
group1: 'L@10.101.20.61,10.101.20.62,10.101.20.63'
  

安装salt-minion
  vim install_salt_minion.sh
  #!/bin/bash   
if [ -f "/etc/salt/minion" ];then
echo "salt-minion had installed!"
exit
fi
# get network ip addr function      
function getIP()      
{   
NET=$1   
if [ "$NET" = "" ]; then   
NET="eth0"   
fi   
IP=""   
if [ $(ifconfig | grep "$NET" | wc -l) -gt 0 ]; then   
IP=$(ifconfig $NET | grep 'inet addr:' | awk -F: '{print $2}' | awk '{print $1}')   
fi   
echo $IP      
}   
SERVER_ADDR="10.3.2.115"   
LOCAL_ADDR=$(getIP eth0)
if [ "$LOCAL_ADDR" = "" ];then
LOCAL_ADDR=$(getIP bond0)
fi

VER=$(cat /etc/redhat-release | awk '{print $3}')
if [ "$VER" = "6.5" ];then
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm   
elif [ "$VER" = "5.7" ];then
rpm -ivh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm   
wget --no-check-certificate https://copr.fedoraproject.org/coprs/saltstack/salt-el5/repo/epel-5/saltstack-salt-el5-epel-5.repo -O /etc/yum.repos.d/saltstack-copr-el5.repo
else
exit 1
fi

yum install -y python salt-minion   
sed -i "/^#master: salt/a\master: $SERVER_ADDR" /etc/salt/minion   
sed -i "/^#id:/a\id: $LOCAL_ADDR" /etc/salt/minion   
/etc/init.d/salt-minion start  
chkconfig salt-minion --level 35 on  
echo "00 01 * * * /etc/init.d/salt-minion restart >/dev/null 2>&1" >> /var/spool/cron/root


  



在salt-master服务器上执行操作

认证命令

salt-key -L         显示已经认证或未认证的被控端id

salt-key -D         删除所有认证主机id证书

salt-key -d 'id'    删除单个id证书

salt-key -A         接受所有id证书请求

salt-key -a 'id'    接受单个id证书请求



常用测试命令

salt '*' test.ping

salt '*' cmd.run 'uptime'

salt -L '10.101.20.61' cmd.run 'uptime'

salt -N 'group1' cmd.run 'uptime'
  salt -L '10.101.20.61' cp.get_file salt://zabbix/zabbix-2.4.4.tar.gz /usr/local/src/zabbix-2.4.4.tar.gz
  salt '10.101.20.61' grains.ls      列出grains所有items

salt '10.101.20.61' grains.items   打印grains所有items值

salt '10.101.20.61' grains.item id 查看grains单个item值







使用saltstack安装zabbix agent

vim /srv/salt/zabbix/install_zabbix_agent.sls

添加

/usr/local/src/zabbix-2.4.4.tar.gz:
  file.managed:
    - source: salt://zabbix/zabbix-2.4.4.tar.gz
    - user: root
    - group: root
    - mode: 644
/usr/local/src/install_zabbix_agent.sh:
  cmd.script:
    - source: salt://zabbix/install_zabbix_agent.sh
    - user: root
    - shell: /bin/bash


salt -L '192.168.1.101' state.sls zabbix.install_zabbix_agent -v
  
  


  使用saltstack调用系统命令管理系统用户
  添加用户并设置密码

salt -L '192.168.1.101' cmd.run '/usr/sbin/useradd -u 1001 -g 1001 -p 123456  zhao' -v



设置用户密码

salt -L '192.168.1.101' cmd.run '/bin/echo 123456 | /usr/bin/passwd --stdin zhao' -v



删除用户

salt -L '192.168.1.101' cmd.run '/usr/sbin/userdel -r zhao' -v





开启SSH KEY登陆

salt -L '192.168.1.101' cmd.run "/bin/sed -i 's/^#PubkeyAuthentication yes/PubkeyAuthentication yes/' /etc/ssh/sshd_config;/etc/init.d/sshd restart" -v

用户添加公钥

salt -L '192.168.1.101' cmd.run '/bin/mkdir /home/zhao/.ssh' -v

salt -L '192.168.1.101' cmd.run '/bin/echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAuhy3wPKiJv7dYgR6doUYpU40hGDmfc7DWNYXVA6Ld/CQKUquKJSfrxAXXkLrFiaBg8REt+HZnm0ofCJeJBPr8CiKxOu692TFbBIx7/YekAk/QMpG9CS0emEAsFLBXaJPN2f0NIHrnyxQNF5Zxd+yi3EQe3UTZ67uDtJW/WDAeLdIldk8DlWpI8IhORGuvWmuae3c5j6KV82yySB4RBaHNOCKPcIMyQqNS09ycTbTVIv8TWD3iq1sIf3iLhSvNTNKWSDMnqcMQ5+d+CSwT3bpEgqWT5FKlHVJWdMhcSnfzJ7oyBIjMxBPxvY8k1kVawwJjw7FO5MutwsfPebbjq6tMw==
root@localhost.localdomain" >> /home/zhao/.ssh/authorized_keys' -v

salt -L '192.168.1.101' cmd.run '/bin/chown -R zhao /home/zhao/.ssh' -v

salt -L '192.168.1.101' cmd.run '/bin/chmod 600 /home/zhao/.ssh/authorized_keys' -v


  


  saltstack管理用户

vim useradd.sls
  

user1:
user.present:
- fullname: user1
- password: '$1$jQCCbRPU$LsDTUmQ9CoDoM8IwiDFMy0'
- shell: /bin/bash
- home: /home/user1
- uid: 1001
- gid: 1001
- require:
- group: zucheops
user2:
user.present:
- fullname: user2
- password: '$1$jQCCbRPU$LsDTUmQ9CoDoM8IwiDFMy0'
- shell: /bin/bash
- home: /home/user2
- uid: 1002
- gid: 1001
- require:
- group: zucheops
zucheops:
group.present:
- gid: 1001



vim userdel.sls  
  

user2:
user.absent:
- purge: True
- force: True
  
  


  PYTHON程序调用saltstack API
  vim  test.py



#!/usr/bin/python
import salt.client
client = salt.client.LocalClient()
ret = client.cmd('*', 'test.ping')
ret = client.cmd('*', 'cmd.run', ['hostname'])
print ret
  
  


  


  


  以下为state.sls递归复制目录


  vim /srv/salt/global/deployment_api/init.sls
  

/KTSGAPI/ktsg-api:
file.recurse:
- source: salt://global/deployment_api/ktsg-api
- user: root
- group: root
- dir_mode: 755
- file_mode: 755
- recurse:
- user
- group
salt -N 'KT-API-G1' state.sls global.deployment_api -v | tee /root/deployment_api.log
  


  
  jiajia模板


  vim test/nginx.sls
  

/usr/local/src/nginx.conf:
file.managed:
- source: salt://test/nginx.conf
- user: root
- group: root
- mode: 644
- template: jinja

vim test/nginx.conf
  
  

{% if grains['id'] == '10.101.20.61' %}
id: 10.101.20.61
{% elif grains['id'] == '10.101.20.62' %}
id: 10.101.20.62
{% elif grains['id'] == '10.101.20.63' %}
id: 10.101.20.63
{% else %}
id:
{% endif %}
  
  

salt '*' state.sls test.nginx -v


  




  


  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-143839-1-1.html 上篇帖子: saltstack快速入门##个人整理篇 下篇帖子: Saltstack:Multi-Master搭建
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表