salt stack安装与使用

Saltstack三大功能
远程执行(执行远程命令)
配置管理(状态管理)
云管理

Saltstack特征
1)部署简单、方便;
2)支持大部分UNIX/Linux及Windows环境;
3)主从集中化管理;
4)配置简单、功能强大、扩展性强;
5)主控端(master)和被控端(minion)基于证书认证,安全可靠;
6)支持API及自定义模块,可通过Python轻松扩展。

Master与Minion认证
1)minion在第一次启动时,会在/etc/salt/pki/minion/(该路径在/etc/salt/minion里面设置)下自动生成minion.pem(private key)和 minion.pub(public key),然后将 minion.pub发送给master。
2)master在接收到minion的public key后,通过salt-key命令accept minion public key,这样在master的/etc/salt/pki/master/minions下的将会存放以minion id命名的 public key,然后master就能对minion发送指令了。

Master与Minion的连接
SaltStack master启动后默认监听4505和4506两个端口。4505(publish_port)为saltstack的消息发布系统,4506(ret_port)为saltstack客户端与服务端通信的端口。如果使用lsof 查看4505端口,会发现所有的minion在4505端口持续保持在ESTABLISHED状态。
1. saltstack安装配置
        服务端:
            IP:122.114.73.247   Hostname:doupo.com
        客户端:
            IP:122.114.154.79	   Hostanme:cangqiong.com

2.  配置FQDN,让ip和主机名对应   vim /etc/hosts
            122.114.73.247   doupo.com doupo
            122.114.154.79	 cangqiong.com cangqiong
            scp /etc/hosts [email protected]:/etc/

3.  关闭防火墙和selinux
        服务端:
            yum install epel-release -y  #安装 epel源
            yum install salt-master salt-minion -y  #安装服务端和被监控端服务
        客户端:
            yum install epel-release -y && yum install salt-minion –y
#被控端:安装被监控端服务
        服务端配置:
            vim /etc/salt/minion
            在16行增加
            master: 122.114.73.247   #服务端地址
            systemctl start salt-master
            systemctl start salt-minion
        客户端:
            vim /etc/salt/minion
            在16行增加:master: 122.114.73.247   #服务端地址
            systemctl start salt-minion
            ps -ef | grep salt 查看进程
4.  配置认证(在服务端操作)
            salt-key -a cangqiong.com    #对客户端主机进行签名
            salt-key -A  #对所有主机进行签名   -d 删除指定的主机
5.  测试主机是否在线
            salt '*' test.ping   #对所有签名的客户端进行ping
            salt 'cangqiong.com' test.ping
            salt 'qiongcang.com' cmd.run 'system start httpd' #远程执行命令
6.  saltstack之grains
        GRAINS 组件是saltstack中非常重要的一个组件,其主要用于记录Minion的一些静态信息,如比:CPU、内存、磁盘、网络等。grains信息是每次客户端启动后自动上报给master的,一旦这些静态信息发生改变需要重启minion 或者 重新同步下 grains。
        salt 'cangqiong' grains.ls   #列出所有的grains项目名称
        salt cangqiong grains.items  #列出所有的grains项和对应的值
     启动grains的信息并不是动态的,并不会时时变更,它只是在minion启动时收集到的,我们可以根据grains收集到的一些信息,做配置管理工作,可以支持自定义一些监控项

7.  自定义grains
        需要在客户端上添加文件grains
            vim /etc/salt/grains
            role:client
            env:test
            myname:cangqiong Linux
            myhostname:cangqiong
            systemctl restart salt-minion
            执行salt cangqiong grains.items  或者salt cangqiong grains.item env查看
       还可以使用salt -G env:test cmd.run 'w' salt -G env:test cmd.run 'id'

8.  saltstack之pillar
        grains用于存储静态不易变更的数据,而pillar一般用来存储动态的、敏感的数据;通过minion端和master端都可以配置设置或获取grains信息,而pillar信息只能在master端配置,再到minion端执行。
pillar和grains不一样,是在master上定义的,并且是针对minion定义的一些信息,可以自定义变量等

        自定义配置pillar过程:
            vim /etc/salt/master
            找到pillar_roots取消下面三行的注释
            pillar_roots:
                base:
                    - /srv/pillar
        创建pillar文件的存放目录:
            mkdir -p /srv/pillar
            vim test.sls                      vim /srv/pillar/top.sls
            conf: /etc/123.conf            base:
            myname: saltstack-server        'cangqiong.com':
                                                                    - test
            systemctl restart salt-master
            salt '*' saltutil.refresh_pillar   #刷新获取新状态
            salt '*' pillar.items     #查看items

  

  

 

  

猜你喜欢

转载自www.cnblogs.com/The-day-of-the-wind/p/9648164.html