saltstack的相关配置与使用

一:Saltstack的安装配置

服务端:ip40
ip:192.168.14.240
minion端:localhost
ip:192.168.13.164

1:配置FQDN,让ip和主机名对应

[root@ip240 ~]# vim /etc/hosts
192.168.14.240 ip40 ip40.com
192.168.13.164 localhost localhost.com

2都关闭防火墙和selinux 开机不启动

#systemctl stop firewalld && systemctl stop selinux
#systemctl disable firewalld && systemctl disable selinux

3安装服务组件

[root@ip240 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
#安装epel源 两边都要执行
[root@ip240 ~]# yum install salt-master salt-minion -y
#安装服务端和被监控端服务
**错误:**软件包:salt-2015.5.10-2.el7.noarch (epel)
需要:python-jinja2
解决
[root@ip240 ~]# yum list|grep python-crypto
[root@ip240 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@ip240 ~]#yum install salt-master salt-minion -y
[root@localhost ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@localhost ~]# yum install salt-minion –y
配此三个yum源 且是阿里的
-rw-r–r--. 1 root root 70 9月 7 11:55 CentOS7.repo
-rw-r–r--. 1 root root 2523 9月 7 11:55 CentOS-Base.repo
-rw-r–r--. 1 root root 664 9月 7 11:55 epel.repo

4 服务启动

配置主控服务:
[root@ip240 ~]# vim /etc/salt/minion
在16行下面增加一行:
master: 192.168.14.240 ##说明服务端的地址
修改python编写的配置文件千万注意缩进(空格)
启动主控端服务:
[root@ip240 ~]# systemctl start salt-master
[root@ip240 ~]# systemctl start salt-minion
配置被控端服务:
[root@localhost ~]# vim /etc/salt/minion

启动被监控服务:
[root@localhost ~]# systemctl start salt-minion

启动完,可以查看下进程,可以看到相关服务是python来执行运行的
[root@ip240 ~]# ps aux | grep salt

5配置认证

[root@ip240 ~]# salt-key -A
签名完成,可以在被监控端看到生成的密钥minion_master.pub
[root@localhost ~]# cd /etc/salt/pki/minion/
[root@localhost minion]# ll

6 saltstack 远程执行命令演示

探测主机是否在线
[root@ip240 ~]# salt ‘*’ test.ping
ip240.cn:
True
192.168.122.1:
True

查看分区等信息:
[root@ip240 ~]# salt ‘192.168.122.1’ cmd.run ‘df -h’
192.168.122.1:
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 10G 8.5G 1.6G 85% /
devtmpfs 975M 0 975M 0% /dev
tmpfs 991M 12K 991M 1% /dev/shm
tmpfs 991M 11M 980M 2% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sda1 197M 142M 56M 72% /boot
tmpfs 199M 52K 199M 1% /run/user/0
/dev/sr0 4.3G 4.3G 0 100% /mnt
可以调用cmd.run 来执行其他的命令,比如负载,时间,主机名等等
这里的* 表示所有已经签名的客户端,也可以指定其中特定的一个,比如192.168.122.1 ,但是这些客户端必须是在master上被接受认证的客户端,如果有多个被监控的客户端,我们可以通过通配符,列表,正则等来一次性的控制多个主机,比如我们现在有两个客户端,web10 web11.可以写成:
salt ‘web*’或者salt ‘web1[01]’或者 salt -L ‘web10,web11’使用列表的时候,多个机器用逗号隔开

7、saltstack之grains介绍

GRAINS 组件是saltstack中非常重要的一个组件,其主要用于记录Minion的一些静态信息,如比:CPU、内存、磁盘、网络等。grains信息是每次客户端启动后自动上报给master的,一旦这些静态信息发生改变需要重启minion 或者 重新同步下 grains。
[root@ip240 ~]# salt ‘192.168.122.1’ grains.ls
192.168.122.1:
- SSDs
- biosreleasedate
- biosversion
- cpu_flags
- cpu_model
- cpuarch
- domain
- fqdn
- fqdn_ip4
- fqdn_ip6

8、自定义grains

在被监控端上 添加grains
[root@localhost ~]# vim /etc/salt/grains
##此文件默认没有,需要创建

添加如下信息,监控项:对应的信息
role: zabbix_server
env: test

重启minion服务
[root@localhost ~]# systemctl restart salt-minion

9 pillar介绍

grains用于存储静态不易变更的数据,而pillar一般用来存储动态的、敏感的数据;通过minion端和master端都可以配置设置或获取grains信息,而pillar信息只能在master端配置,再到minion端执行。
自定义配置pillar过程:
[root@ip240 ~]# vim /etc/salt/master
529 pillar_roots:
530 base:
531 - /srv/pillar
#pillar_roots 前面加一个空格
[root@ip240 ~]# mkdir -p /srv/pillar
[root@ip240 ~]# cd !$
[root@ip240 pillar]# vim test.sls
conf: /etc/123.conf
myname: saltstack-server
注意冒号后有空格
创建编写入口配置文件
[root@ip240 pillar]# vim /srv/pillar/top.sls
在这里插入图片描述

重启服务:
[root@ip240 pillar]# systemctl restart salt-master
可以通过刷新来获取新的状态
[root@ip240 pillar]# salt ‘*’ saltutil.refresh_pillar

二、Saltstack 配置管理服务

1配置安装apache
[root@ip240]]# vim /etc/salt/master

取消406-408行的注释
406 file_roots:
407 base:
408 - /srv/salt/
创建配置文件存储目录
[root@ip240]# mkdir /srv/salt
[root@ip240]#cd /srv/salt
创建入口配置文件
[root@ip240 salt]# vim top.sls

base:

‘ip240.com’:

  • apache
    意思是指定客户端上执行apache的模块
    重启服务:
    [root@ip240 salt]# systemctl restart salt-master
    创建编写apache模块的配置文件
    [root@ip240 salt]# vim /srv/salt/apache.sls
    apache-service:
    pkg.installed:

    • names:

      • httpd

      • httpd-devel

    service.running:

    • name: httpd
  • enable: True

注意:行对齐 -有空格

apache-service是ID的名称,自定义的。pkg.installed为包安装函数,下面是要安装的包的名字。service.running也是一个函数,来保证指定的服务启动,enable表示开机启动。

配置好文件,执行
[root@ip240 salt]# salt ‘localhost.com’ state.highstate

2配置远程文件管理
创建一个文件管理的模块
[root@ip240 salt]# vim filetest.sls

file_test:

file.managed:

- name: /tmp/xuegodlinux.txt

- source: salt://test/xuegod.php

- user: root

- group: root
  • mode: 644

注意:第一行的 file-test 为自定的名字,表示该配置段的名字,可以在别的配置段中引用它;source指定文件从哪里拷贝,这里的 test 目录相当于是 /srv/salt/test 目录;name指定远程客户端要生成的文件。新建所要测试的源文件

[root@ip240 salt]#mkdir -p /srv/salt/test

[root@ip240 salt]# echo ‘xuegod.com’>/srv/salt/test/xuegod.php

在入口文件里添加模块

[root@ip240 salt]# vim top.sls

base:

‘xuegod64.com’:

- apache
  • filetest

测试执行:

[root@ip240 salt]# salt ‘localhost.com’ state.highstate

3、配置文件夹管理:

创建一个文件夹管理的模块

[root@ip240 salt]# vim filedir.sls

file_dir:

file.recurse:

- name: /tmp/testdir

- source: salt://test

- user: root

- file_mode: 644

- dir_mode: 755

- mkdir: True
  • clean: True

在入口文件里添加模块

[root@ip240 salt]# vim top.sls

base:

‘localhost.com’:

  • filedir

测试文件夹管理:

[root@ip240salt]# salt ‘localhost.com’ state.highstate

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值