saltstack自动化运维----saltsack的安装和相关命令、base目录和ansible与saltstack的不同(2)

一、前言

实验环境:准备三台虚拟机,一台作为master,二台作为minion

server1172.25.60.1
server2172.25.60.2
server3172.25.60.3

由于之前做了ansible自动化运维zabbix监控工具,所以在做此实验的时候,将该关的服务关掉,或者自己重新准备三台环境干净的虚拟机
特别注意:如果沿用之前的虚拟机的环境,需要将火墙关闭,否则在做连接的时候master识别不到minion,以及用户环境,必须是在超户的环境下。
saltsack不需要做免密

二、saltstack的安装

使用virsh start server打开虚拟机
想要安装saltsack需要各种安装包来解决依赖性,我们将其做成一个仓库,直接通过yum来安装saltsack即可。所有的安装包在网上都可以下载到。三个主机所用到的yum仓库是一样的。

在这里插入图片描述
在server1上写yum文件
在这里插入图片描述
查看自己的仓库是否搭建成功

在这里插入图片描述
将所写的repo文件上传到server2和server3主机,并且在每个主机上确认是否成功
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
配置三台主机
在三个主机安装的不一样:
1、在server1主机上:安装yum install salt-master
打开服务sysyemctl start salt-master
在这里插入图片描述
在这里插入图片描述

2、在server2和server3上的主机上:安装yum install salt-minion
安装成功后,修改配置文件,设置他的master为server1的ip
打开服务systemctl start salt-minion
为了实验效果,先打开server2的salt-minion

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
ps:master和minion打开自己相应的文件,即master打开的是自己端的master文件,虽然它有minion文件,但是不管他。minion打开自己的minion文件,不管目录下面的master文件,不同主机作用打开自己相对应的配置文件爱即可
在这里插入图片描述
在这里插入图片描述

3、在server1的主机上安装lsof、net-tools
利用lsof -i:4505/4506查看端口状态
当我们没有打开任何一个salt-minion时,什么都接收不到
在这里插入图片描述
当打开server2的salt-minion之后,可以接收到server2的信息
在这里插入图片描述
4、在server1上使用salt-key -L
查看minion,是否有没有连接上的主机
salt-key -A 将没有连接上的主机与master连接起来。
在检测主机的时候,一定要确定主机的防火墙是关闭的,以及环境是否为root
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将server3也连接起来
打开server3的salt-minion
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以查看进程,查看到server3的进程
在这里插入图片描述
5、测试:master是否可以和minion主机ping通
salt serve2 test.ping(test为saltsack的模块)有多种的表示方式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到server1和server2、server3相连接
在这里插入图片描述
7、通过tree minion/查看
在这里插入图片描述
在这里插入图片描述

三、sls文件的使用

在master主机上通过查看master文件,可以看到base文件的路径,但是这个路径却不存在,所以需要我们创建这个目录/srv/salt
所有的sls文件等操作都是基于这个目录下面
编写文件,在saltsack中,文件的结尾必须是sls。
老规矩,还是先安装配置apache服务
在写sls文件之前,简单介绍一下sls文件的格式:

一个简单的示例:
httpd: -------> httpd: sls文件的id,在此sls文件中不能重复,同时也是yum安装的包名和服务名,作为参数name传递给pkg.installed函数和service.running函数
pkg: -------> pkg是包管理模块,对应/usr/lib/python2.6/site-packages/salt/states下的模块pkg.py

  • installed -------> installed是pkg模块下的函数,id(httpd)作为installed的参数进行调用
    service: ------->service是服务模块,对应/usr/lib/python2.6/site-packages/salt/states下的模块service.py, 由于service是一个key,其下的running, require, watch是列表形式的值,因此service之后有冒号
  • running -------> running是service.py模块下的函数,id(httpd)作为running的参数进行调用
  • require: ------->require关键字在 /usr/lib/python2.6/site-packages/salt/state.py里定义的,由于require是key,其下还有子层,因此require>后面要有冒号: 且与后面的单词有一个空格
    - pkg: httpd
  • watch: ------->require关键字在 /usr/lib/python2.6/site-packages/salt/state.py里定义的,由于watch是key,其下还有子层,因此require后面要有冒号:且与后面的单词有一个空格
    - file: /etc/httpd/conf/httpd.conf

/etc/httpd/conf/httpd.conf:
file: ------->file是salt的文件管理模块,对应/usr/lib/python2.6/site-packages/salt/states下的模块file.py

  • managed -------> managed是file.py模块里的一个函数
  • source: salt://httpd.conf -------> source是managed函数的参数之一
  • require:
    - pkg: httpd

sls文件的执行: salt ‘*’ state.sls httpd (注意:是httpd,不是httpd.sls)

写apache.yml文件
当文件执行完成后,在指定主机上可以查看到相关数据文件。
在网络传输时,我们校验源文件获得其md5sum,传输完毕后,校验其目标文件,并对比如果源文件和目标文件md5 一致的话,则表示文件传输无异常。否则说明文件在传输过程中未正确传输。
在这里插入图片描述在这里插入图片描述在这里插入图片描述
可以查看主机名:
在这里插入图片描述

三、salt的base目录

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、ansible和saltsack的不同

saltsack的作用和ansible的作用一样,但在使用上不同。
ansible命令的运行必须在相对应的ansible目录下面,saltsack没有目录的限制。
ansible中yml文件的存放位置有要求,saltsack所有的文件目录必须在base目录下面/srv/salt
ansible中yml文件的书写可以在一个文件里面有多个hosts,saltsack的sls文件只能有一个声明
ansible中文件以yml结尾,同时缩进有要求,saltsack中文件以sls结尾,在编辑文件时不能使用tab键,同样也要注意缩进

不同点,之后在更深入的学习了解saltsack之后补充完整

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值