SaltStack运行安装笔记

SaltStack帮助文档
http://docs.saltstack.cn/genindex.html
SaltStack运行方式

1,Local
2,Master/Minion
3,Salt SSH

SaltStack 三大功能

1,远程执行
2,配置管理
3,云管理

SaltStack安装
主机:
yum install salt-master salt-minion -y

主机二:
yum install salt-minion -y

加入到开机启动:
chkconfig salt-master on
chkconfig salt-minion on

centos7的启动
systemctl start salt-master
centos6的启动
/etc/init.d/salt-master start

开始配置,告诉master是谁
vim /etc/salt/minion
16行 #master: salt
变成:master:47.104.154.42
78行#id:
变成主机名hostname:
id:didi-cloud

master启动:
centos7的启动
systemctl start salt-master
centos6的启动
/etc/init.d/salt-master start

minion启动:
systemctl start salt-minion.service
或者是
/etc/init.d/salt-minion start

salt认证
minion端
在minion端会生成minion.pem,和minion.pub
路径/etc/salt/pki/minion/
这是在minion第一次启动的时候生成的
这时我们需要把minion.pub发给master

master端
/etc/salt/pki/master
也会生成公钥和私钥

两边的防火墙都开启4505和4506端口

在master主机上查看
ll /etc/salt/pki/master/minions_pre
是否有你的minion主机
如果没有的话是添加失败的
1,检查防火墙
2,检查vim /etc/salt/minion minions的master ip
3,vim /etc/salt/minion id是不是本机的hostname
4,上述修改完后重启服务

在master主机上查看
ll /etc/salt/pki/master/minions_pre
是否有你的minion主机,如果有进行统一操作
salt-key  查看列表
salt-key -A 同意所有
salt-key -a linux* 同意以linux开头名字的主机

查看minions日志:
cat /var/log/salt/minion

同意之后查看是否成功
tree /etc/salt/pki/master
├── master.pem
├── master.pub
├── minions
│   └── didi-cloud
├── minions_autosign
├── minions_denied
├── minions_pre
└── minions_rejected
上面是成功的
已经成功将didi-cloud的主机公钥添加成功

master同意添加主机后不仅会保留minions的公钥,
也会将自己的公钥发送给minions
进入minions

我遇到的坑:
salt-key list 没有你的主机
解决:删除minions端的秘钥匙
	  重启minions的客户端,就会重新生成
	  这时候salt-key list看看会不会有
	  salt-key -D 删除所有的
	  salt-key -A 添加所有的主机
	  salt-key -a didi* 添加以didi主机名开头的
	  在minions查看错误日志



在master上就可以控制自己的主机了
输入salt-key --help 查看使用帮助

=======================
远程执行,进入实际功能
=======================
salt '*' cmd.run 'uptime'
打印如下信息
didi-cloud:
     12:27:21 up 43 min,  1 user,  load average: 0.00, 0.01, 0.05

salt '*' cmd.run 'df -h'
didi-cloud:
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/vda1        20G  3.6G   17G  18% /
    devtmpfs        476M     0  476M   0% /dev
    tmpfs           497M   32K  497M   1% /dev/shm
    tmpfs           497M   13M  484M   3% /run
    tmpfs           497M     0  497M   0% /sys/fs/cgroup
    tmpfs           100M     0  100M   0% /run/user/1001

cmd.run可以执行所有的命令,危险性比较大

说明可以控制远程的主机

vim编辑器中显示所有的空格
set list


更改master的配置文件:取消备注
vim /etc/salt/master
416 file_roots:
417   base:
418     - /srv/salt
注意:新建/srv/salt文件夹
	  base:前面两个空格
	  - srv/salt前面四个空格
禁止使用tab键,肯定报错

所有的配置文件都写在/srv/salt下
新建apache.sls
apache-install:
  pkg.installed:
    - names:
      - httpd
      - httpd-devel

apache-service:
  service.running:
    - name: httpd
    - enable: True
    - reload: True

重启一下master服务


进入安装apache环节:
cd /srv/salt目录
新建apache.sls


运行这个sls脚本文件
salt '*' state.sls apache

SaltStack 的数据系统
Grains 收集主机信息
salt '10*' grains.items 显示所有的机器信息
salt '10*' grains.ls    显示所有的列表

高级匹配
salt -G os:CentOS cmd.run 'w'
-G 高级匹配
匹配os是CentOS的主机运行w命令
扩展:执行全部有什么服务的主机执行什么命令

Pillar
salt '*' pillar.items

vim /etc/salt/master
pillar_opts: True
systemctl restart salt-master
再次输入salt '*' pillar.items
就会有信息了


SaltStack远程执行的三大内容
REMOTE EXECUTION 远程执行
目标Targeting
模块Module
返回Returnners
刷新状态:salt '*' saltutil.refresh_pillar

验证远程某一个服务是否开启:
salt '*' service.available sshd

验证远程开启的所有的服务
salt '*' service.get_all

猜你喜欢

转载自blog.csdn.net/weixin_36171533/article/details/81157327
今日推荐