salt安装与简单使用,自动化部署apache服务

简介

SaltStack是一个服务器基础架构集中化管理平台,具备配置管理,远程执行、监控等功能,一般可以理解为简化版的puppet和加强版的func。SaltStack基于python语言实现,结合轻量化级消息队列(zeroMQ)与python第三方模块(Pyzmq、Pyjinjia2、python-msgpack和PyYaml等)构建。
通过部署saltstack环境,我们可以在成千上万台服务器上做到批量执行命令,根据不同业务特性进行配置集中化管理、分发文件、采集服务器数据、操作系统基础及软件包管理等,SaltStack是运维人员提高工作效率,规范业务配置与操作的利器。

特性

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

Master与Minion

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的连接
(1)、 SaltStack master启动后默认监听4505和4506两个端口。4505(publish_port)为saltstack的消息发布系统,4506(ret_port)为saltstack客户端与服务端通信的端口。如果使用lsof 查看4505端口,会发现所有的minion在4505端口持续保持在ESTABLISHED状态。
(2)、minion与master之间的通信模式如下:
在这里插入图片描述

saltstack基础安装与配置

实验环境

操作系统:rhel6.5
master:server1 172.25.66.1
minion:server2 172.25.66.2
minion:server3 172.25.66.3
在两台服务器编辑/etc/hosts文件,添加主机名与IP地址的解析,若机器太多,可以通过搭建 DNS,则不用在每台机器上设置这个
在这里插入图片描述

安装与配置

一、配置yum
1、网上下载salt所需安装包放在真机的apache发布目录下(类似于搭建第三方软件仓库)
在这里插入图片描述
2、在三台虚拟机中配置yum

cd /etc/yum.repo.d/
vim rhel-source.repo
[salt]
name=salt
baseurl=http://172.25.66.250/salt
gpgcheck=0

yum repolist
在这里插入图片描述
二、安装与测试
1、在server1中
(1):yum install -y salt-master
(2):修改配置文件

cd /etc/salt/
vim master
  534 file_roots:
  535   base:
  536     - /srv/salt            # 打开注释
  537 
/etc/init.d/salt-master start
netstat -antlp      # 查看端口是否打开

在这里插入图片描述
在这里插入图片描述
4505端口:用来链接slave,发布订阅
4506端口:请求响应,模式为:zmq(消息队列)

2、在sevrer2和server3上yum install -y salt-minion
在minion端修改配置文件,指定master

cd /etc/salt/
vim minion
16 master: 172.25.66.1         # 指向的master端
/etc/init.d/salt-minion start   # 打开服务后生成一个minion.id文件
# 如果修改ip或者hostname的话,必须删除该文件重新生成

在这里插入图片描述
在这里插入图片描述
3、在master端发现所有minion并接收minion的公钥
salt-key -L:显示指向该master的所有minion
在这里插入图片描述
salt-key -A:接收指向该master的minion的公钥
在这里插入图片描述
4、在master端与minion端查看公钥
master:
在这里插入图片描述
minion:
在这里插入图片描述
在这里插入图片描述
5、现在我们可以在master端对所有minion进行各种操作了,这些操作都是通过调用相应的python方法实现的
salt ‘*’ test.ping:测试master与所有minion通讯是否正常,‘’表示检测所有minion,也可以单独指定某一个minion,将‘*’换成minion的hostname即可
在这里插入图片描述
远程执行各种命令:
**salt '
’ cmd.run ‘df -h’**:远程执行所有minion中的df -h命令
在这里插入图片描述
**salt ‘*’ cmd.run hostname
在这里插入图片描述
三、自动化批量部署
自动化部署apache服务
1、修改master端的配置文件
vim /etc/salt/master

cd /etc/salt/ 
vim master 
534 file_roots: 
535 base: 
536 - /srv/salt # 这个目录没有,自己建立 ,该目录中存放部署相应服务的脚本
mkdir /srv/salt 
/etc/init.d/salt-master restart

2、编写部署apache服务的脚本

mkdir /srv/salt/http
cd /srv/salt/httpd
vim apache.sls
写入:
apache-install:				#在该文件中唯一的名字
  pkg.installed:				#调用pkg模块的installed方法
    - pkgs:
      - httpd						#安装apache
      - php						#安装php

3、测试脚本的运行
salt ‘*’ state.sls httpd.apache
在这里插入图片描述
在这里插入图片描述
在minion端查看aoache与php是否安装
在这里插入图片描述
4、在自动化批量部署的同时修改服务端口

mkdir /srv/salt/httpd/files			#创建files目录,存放apache的配置文件
scp root@server2:/etc/httpd/conf/httpd.conf  /srv/salt/httpd/files
vim /srv/salt/httpd/files/httpd.conf
修改服务端口为8080

重新编辑apache的安装脚本

vim /srv/salt/httpd/apache.sls
apache-install:
  pkg.installed:
    - pkgs:
      - httpd
      - php
  file.managed:
    - name: /etc/httpd/conf/httpd.conf
    - source: salt://httpd/files/httpd.conf
    - mode: 644
    - user: root

  service.running:
    - name: httpd
    - enable: True
    - reload: True
    - watch:
      - file: apache-install

5、执行脚本
salt ‘*’ state.sls httpd.apache
在这里插入图片描述
6、在minion中查看http端口是否该为8080
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值