centos7实战salt

简述saltstacksaltstack是一个新的基础平台管理工具,只需要花费数分钟即可运行起来,可以支撑管理上万台服务器的规模,数秒钟即可完成数据传递。saltstack是使用python语言开发的,同时也支持restAPI方便二次开发以及和它平台集成,同时官方也发布了一个Web管理界面halite。优点:首先,他速度快,基于消息队列+线程,跑...
摘要由CSDN通过智能技术生成
简述

saltstack

  • saltstack是一个新的基础平台管理工具,只需要花费数分钟即可运行起来,可以支撑管理上万台服务器的规模,数秒钟即可完成数据传递。

  • saltstack是使用python语言开发的,同时也支持restAPI方便二次开发以及和它平台集成,同时官方也发布了一个Web管理界面halite。

优点:

  • 首先,他速度快,基于消息队列+线程,跑完多台设备,都是毫秒级别的
  • 其次,非常灵活,源码是python,方便理解和自定义模块(python 语言相对于其他的perl、ruby等还是很好理解的)
  • 命令简单,功能强大

saltstack运行方式

  • Local
  • Master/Minion
  • Salt SSH

本文使用Master/Minion运行方式。

saltstack三大功能

  • 远程执行
  • 配置管理
  • 云管理

saltstack数据系统

  • Grains (静态数据)
  • pillar (动态数据)

saltstack配置管理

  • SLS(YAML、Jinja)
  • Highstate
  • States Module
实现环境

准备三台机器,这三台机器都关闭 selinux,清空防火墙规则。

  • saltstack ==> 172.16.0.19 (服务端)
  • client1 ==> 172.16.0.20 (客户端)
  • client2 ==> 172.16.0.21 (客户端)

查看版本和内核

[root@saltstack ~]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core) 
[root@saltstack ~]# uname -rm
3.10.0-514.6.1.el7.x86_64 x86_64

分别设置 hostname,设置完毕xshell注销重新连接一下

[root@saltstack ~]# hostnamectl set-hostname saltstack
[root@client1 ~]# hostnamectl set-hostname client1
[root@client2 ~]# hostnamectl set-hostname client2

编辑 hosts 文件
每台都设置,若机器太多,可以通过搭建 DNS,则不用在每台机器上设置这个

[root@saltstack ~]# vi /etc/hosts
添加下面内容
172.16.0.19 saltstack
172.16.0.20 client1
172.16.0.21 client2
开始安装

分别为三台机器添加阿里云epel源

[root@saltstack ~]# mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
[root@saltstack ~]# mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup
[root@saltstack ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

服务端安装

[root@saltstack ~]# yum -y install salt-master salt-minion

客户端安装

[root@client1 ~]# yum -y install salt-minion

客户端安装

[root@client2 ~]# yum -y install salt-minion
配置master

服务端和客户端都要配置

[root@saltstack ~]# vi /etc/salt/minion +16
以下两种方式都可以,选择其中一种即可
# master改为服务端的主机名
master: saltstack    
# master改为服务端的IP
master: 172.16.0.19

分别修改三台机器minion文件中的的id为自己的主机名

[root@client1 ~]# vi /etc/salt/minion +78
id: client1
[root@client2 ~]# vi /etc/salt/minion +78
id: client2

启动saltstack服务
服务端

[root@saltstack ~]# systemctl enable salt-master
[root@saltstack ~]# systemctl enable salt-minion
[root@saltstack ~]# systemctl start salt-master
[root@saltstack ~]# systemctl start salt-minion

客户端

[root@client1 ~]# systemctl enable salt-minion
[root@client1 ~]# systemctl start salt-minion
配置认证

服务端操作

[root@saltstack ~]# salt-key -a client1
The following keys are going to be accepted:
Unaccepted Keys:
client1
Proceed? [n/Y] y     
Key for minion client1 accepted.

[root@saltstack ~]# salt-key -a client2
The following keys are going to be accepted:
Unaccepted Keys:
client2
Proceed? [n/Y] y
Key for minion client2 accepted.
[root@saltstack ~]# salt-key -a saltstack
The following keys are going to be accepted:
Unaccepted Keys:
saltstack
Proceed? [n/Y] y
Key for minion saltstack accepted.

[root@saltstack ~]# salt-key 
Accepted Keys:
client1
client2
saltstack
Denied Keys:
Unaccepted Keys:
Rejected Keys:

说明:-a :accept ,-A:accept-all,-d:delete,-D:delete-all。可以使用 salt-key 命令查看到已经签名的客户端。此时我们在客户端的 /etc/salt/pki/minion 目录下面会多出一个minion_master.pub 文件。

测试验证
示例1: salt '*' test.ping //检测通讯是否正常,也可以指定其中一个 'client1'

[root@saltstack ~]# salt '*' test.ping
saltstack:
    True
client2:
    True
client1:
    True
[root@saltstack ~]# salt 'client1' test.ping
client1:
    True

示例2: salt '*' cmd.run 'df -h' //远程执行命令

[root@saltstack ~]# salt '*' cmd.run 'df -hT'
client2:
    Filesystem     Type      Size  Used Avail Use% Mounted on
    /dev/sda2      xfs        17G   13G  4.2G  76% /
    devtmpfs       devtmpfs   97M     0   97M   0% /dev
    tmpfs          tmpfs     111M   12K  111M   1% /dev/shm
    tmpfs          tmpfs     111M  8.8M  102M   8% /run
    tmpfs          tmpfs     111M     0  111M   0% /sys/fs/cgroup
    /dev/sda1      xfs       297M  202M   96M  68% /boot
    tmpfs          tmpfs      23M     0   23M   0% /run/user/0
saltstack:
    Filesystem     Type      Size  Used Avail Use% Mounted on
    /dev/sda2      xfs        17G  6.8G   11G  40% /
    devtmpfs       devtmpfs  475M     0  475M   0% /dev
    tmpfs          tmpfs     489M   16K  489M   1% /dev/shm
    tmpfs          tmpfs     489M   14M  476M   3% /run
    tmpfs          tmpfs     489M     0  489M   0% /sys/fs/cgroup
    /dev/sda1      xfs       297M  202M   96M  68% /boot
    tmpfs          tmpfs      98M     0   98M   0% /run/user/0
    tmpfs          tmpfs      98M     0   98M   0% /run/user/994
client1:
    Filesystem     Type      Size  Used Avail Use% Mounted on
    /dev/sda2      xfs        17G   13G  4.1G  77% /
    devtmpfs       devtmpfs   97M     0   97M   0% /dev
    tmpfs          tmpfs     111M   12K  111M   1% /dev/shm
    tmpfs          tmpfs     111M   13M   98M  12% /run
    tmpfs          tmpfs     111M     0  111M   0% /sys/fs/cgroup
    /dev/sda1      xfs       297M  202M   96M  68% /boot
    tmpfs          tmpfs      23M     0   23M   0% /run/user/0

说明: 这里的 * 必须是在 master 上已经被接受过的客户端,可以通过 salt-key 查到,通常是我们已经设定的 id 值。关于这部分内容,它支持通配、列表以及正则。 比如两台客户端 client1、client2, 那我们可以写成 salt 'client*' salt 'client[2]' sa

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值