92.自动运维介绍 saltstack安装、启动、配置认证

24.1 自动化运维介绍html

24.2 saltstack安装python

24.3 启动saltstack服务linux

24.4 saltstack配置认证vim

 

 

 

 

24.1 自动化运维介绍安全

 

 

认识自动化运维架构

传统运维效率低,大多工做人为完成运维

传统运维工做繁琐,容易出错ssh

传统运维每日重复作相同的事情tcp

传统运维没有标准化流程工具

传统运维的脚本繁多,不能方便管理

自动化运维就是要解决上面全部问题

 

常见自动化运维工具

1.Puppet (www.puppetlabs.com) #出现的比较早

基于rubby开发,c/s架构,支持多平台,可管理配置文件、用户、cron任务、软件包、系统服务等。 分为社区版(免费)和企业版(收费),企业版支持图形化配置。

2.Saltstack(官网 https://saltstack.com,文档docs.saltstack.com )

基于python开发,c/s架构,支持多平台,比puppet轻量,在远程执行命令时很是快捷,配置和使用比puppet容易,能实现puppet几乎全部的功能。

#使用的串行效率很快。而expect使用的并行(for循环,执行完一个在继续执行下一个,效率就会很慢)

#除了这种cs架构(服务端客户端),也支持只装一个命令的

#支持的机器会更多

3.Ansible (www.ansible.com )

更加简洁的自动化运维工具,不须要在客户端上安装agent,基于python开发。能够实现批量操做系统配置、批量程序的部署、批量运行命令。

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

 

 

24.2 saltstack安装/24.3 启动saltstack服务

 

 

 

1.saltstack介绍https://docs.saltstack.com/en/latest/topics/index.html

2.可使用salt-ssh远程执行,相似ansible,

3.也支持c/s模式,下面咱们将讲述该种模式的使用,须要准备两台机器

~133.128为服务端(中控中心),133.130为客户端

~设置hostname以及hosts,aming-01,aming-02

#实际机器量不少的状况下,能够搞一个内部的dns(带域名的),相似什么A1.axinlinux.com、A2.axinlinux.com,全部的机器都是这种形式的。这样的话hosts就不用配置了,直接写一个dns ip就直接指导哪个机器是谁。由于临时作实验因此写了个hosts

4.两台机器所有安装saltstack yum源

yum install -y https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm #可根据以上的官方文档,安装更新的yum源

5.128上执行 yum install -y salt-master(哪一个为中控中心就安装master) salt-minion

6.130上执行 yum install -y salt-minion

7.128上编辑配置文件(服务端master)

vi /etc/salt/minion //增长

master: aming-01

启动服务systemctl start salt-master; systemctl start salt-minion

8.130上编辑配置文件(客户端minion)

vi /etc/salt/minion //增长

master: aming-01

启动服务systemctl start salt-minion

 

服务端监听4505和4506两个端口,4505为消息发布的端口,4506为和客户端通讯的端口

 

 

 

实例:

01为服务端,02为客户端

[root@axinlinux-01 ~]# hostname

axinlinux-01

[root@axinlinux-01 ~]# vim /etc/hosts

192.168.208.128 axinlinux-01

192.168.208.130 axinlinux-02

[root@axinlinux-02 ~]# hostname

axinlinux-02

[root@axinlinux-02 ~]# vim /etc/hosts

192.168.208.128 axinlinux-01

192.168.208.130 axinlinux-02

[root@axinlinux-01 ~]# yum install -y https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm

[root@axinlinux-02 ~]# yum install -y https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm

[root@axinlinux-01 ~]# yum list |grep salt #可看到不少刚才执行yum时所产生的rpm包,01上须要安装的是:

salt-master.noarch 2018.3.3-1.el7 salt-latest #这两个是01要安装的,其余的暂不接触

salt-minion.noarch 2018.3.3-1.el7 salt-latest

salt-ssh.noarch 2018.3.3-1.el7 salt-latest #ssh这个后续咱们再讲

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

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

[root@axinlinux-01 ~]# vim /etc/salt/minion

master: axinlinux-01 #改成master为hosts设置的01机器的主机名

[root@axinlinux-02 ~]# vim /etc/salt/minion

master: axinlinux-01 #客户端也要改

[root@axinlinux-02 ~]# systemctl start salt-minion #先启动客户机的minoon

[root@axinlinux-02 ~]# ps aux |grep salt

[root@axinlinux-02 ~]# netstat -lntp #虽然minion是跟master经过tcp/ip通讯,可是minion不监放任何端口。master才会监听端口

[root@axinlinux-01 ~]# systemctl start salt-master

[root@axinlinux-01 ~]# systemctl start salt-minion

[root@axinlinux-01 ~]# ps aux |grep salt

[root@axinlinux-01 ~]# netstat -lntp #master监听两个端口

tcp 0 0 0.0.0.0:4505 0.0.0.0:* LISTEN 2906/python #4505来发送消息

tcp 0 0 0.0.0.0:4506 0.0.0.0:* LISTEN 2912/python #master和minion用来通讯的

 

 

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

 

 

24.4 saltstack配置认证

 

 

 

1.master端和minion端通讯须要创建一个安全通道,传输过程须要加密,因此得配置认证,也是经过密钥对来加密解密的

#也就是一个密钥对,以后才能够去传输数据

2.minion在第一次启动时会在/etc/salt/pki/minion/下生成minion.pem和minion.pub,其中.pub为公钥,它会把公钥传输给master

3.master第一次启动时也会在/etc/salt/pki/master下生成密钥对,当master接收到minion传过来的公钥后,经过salt-key工具接受这个公钥,一旦接受后就会在/etc/salt/pki/master/minions/目录里存放刚刚接受的公钥,同时客户端也会接受master传过去的公钥,把它放在/etc/salt/pki/minion目录下,并命名为minion_master.pub

4.以上过程须要借助salt-key工具来实现

5.执行以下命令 salt-key -a aming-01// -a后面跟主机名,能够认证指定主机

6.salt-key -a aming-02

 

salt-key命令用法

-a 后面跟主机名,认证指定主机

-A 认证全部主机 #后面什么后不用跟

-r 跟主机名,拒绝指定主机

-R 拒绝全部主机

-d 跟主机名,删除指定主机认证

-D 删除所有主机认证

-y 省略掉交互,至关于直接按了y

 

 

实例:

[root@axinlinux-01 ~]# ls /etc/salt/pki/master/

master.pem master.pub minions minions_autosign minions_denied minions_pre minions_rejected

[root@axinlinux-01 ~]# salt-key -a axinlinux-02 #若是直接是-A能够将全部的机器所有认证

The following keys are going to be accepted:

Unaccepted Keys:

axinlinux-02

Proceed? [n/Y] y #按y

Key for minion axinlinux-02 accepted.

[root@axinlinux-01 ~]# salt-key #而后再次输入salt-key

Accepted Keys: #已经经过的,也就是已经接受了02的公钥

axinlinux-02

Denied Keys: #被拒绝的

Unaccepted Keys: #默认的,也就是机器里能识别到的

axinlinux-01

Rejected Keys:

[root@axinlinux-01 ~]# cat /etc/salt/pki/master/minions/axinlinux-02 #因此在这就有了02的公钥(这个文件就是客户机上minion.pub)

[root@axinlinux-02 ~]# cat /etc/salt/pki/minion/minion.pub #cat02的公钥看是否是跟01接收到的公钥一致

[root@axinlinux-01 ~]# salt-key -A #直接-A(也就是将本机也认证)

The following keys are going to be accepted:

Unaccepted Keys:

axinlinux-01

Proceed? [n/Y] y

Key for minion axinlinux-01 accepted.

[root@axinlinux-01 ~]# salt-key #才看一下,就已经所有经过了

Accepted Keys:

axinlinux-01

axinlinux-02

Denied Keys:

Unaccepted Keys:

Rejected Keys:

相关文章
相关标签/搜索