Saltstack介绍及简单配置

系统运维

Saltstack介绍

?

Saltstack官方文档: dock.saltstack.com

Saltstack项目:github.com/saltstack

Saltstack中文网:wiki.saltstack.cn

?

Salt是基础平台管理工具。只需花费数分钟即可运行,扩展性足以支撑管理上万台服务器,数秒钟即可完成数据传递。

Salt可以做什么:

1. 配置管理

2. 远程命令

3. 包管理

?

应用安装

应用步骤:

本环境假设为离线环境,需要使用离线包安装此服务

参考文档

https://blog.csdn.net/u014703013/article/details/81288969

1.? 先使用wget 下载网站的安装包,为了后面离线安装作准备。

以下这个是例子,根据你的发行版是啥而具体选择啥版本:

wget -r -c -np? -P c:\\\\satl? https://repo.saltstack.com/yum/redhat/6.0/x86_64/2016.11/

?

说明:

? -r 表示递归下载

? -np 不下载旁站连接

? -c 断点续传

? -nd? 递归下载时不创建一层一层的目录,把所有的文件下载到当前目录(不可取,这样不会把该目录下一级目录一并下载出来。)

? -P 表示下载那个目录

?

2.? 把下载到的文件导进服务器,做一个本地安装源

?

4.? 编辑repo文件(这边为了方便直接在media的repo上增加本地路径)

5. 这边直接安装salt

服务端:

yum install salt

? yum install salt-master -y

? /etc/init.d/salt-master? start

chkconfig salt-master on

? 客户端:

yum install –y salt-minion

vi /etc/salt/minion? —–编辑配置文件

master: 192.168.24.32 —– master端地址

cachedir: /etc/salt/modules? —–模块目录

log file: /var/log/salt/minion.log? —–日志路径

log level: warning —–日志级别

?

master: 192.168.24.4

cachedir: /etc/salt/modules

log file: /var/log/salt/minion.log

log level: warning

?

/etc/init.d/salt-minion start

? chkconfig salt-minion on

?

服务和客户端都安装完后允许这些客户端

salt-key list

salt-key -A

?

?

测试连通性

[root@localhost ~]# salt \\\’*\\\’ test.ping

lnmp02:

? ? True

nfs-server:

? ? True

lnmp01:

? True

一些简单的即时管理,在服务端对客户机执行命令,无法执行一些例如top的即时命令。

?

?

配置 ? 分组管理

编辑/etc/salt/master文件将成员按划分。可以根据系统版本、业务等划分不同的服务器。

vi /etc/salt/master

nodegroups:

? ? ? group1: \\\’L@lnmp01,lnmp02\\\’?

? ? ? group2: \\\’E@lnmp0[0-9]\\\’

上面的是两种写法,“group1”可以自定义

?

执行命令查看一下

?

定义环境,定义该环境的模板存放在哪个路径下

环境配置:

?

环境实例测试: 配置模板实现使用salt服务端作为跳机无密码登录客户端

编辑/etc/salt/master

环境配置:

file_roots:

?base

? -/srv/salt

创建目录,创建mi.py脚本

[root@lnmp01 _modules]# ls

mi.py

[root@lnmp01 _modules]# pwd

/srv/salt/_modules

?

创建ssh公钥与私钥

?

ssh免密码登录原理:

[root@lnmp01 ~]# ssh-keygen 这个操作一路回车就可以

公钥文件在:

[root@lnmp01 ~]# cat ~/.ssh/id_rsa

id_rsa? id_rsa.pub

?

得出的字符串写入到mi.py上

?

#!/usr/bin/env python

?

# Import Python Lib

import os

?

def sshkey():

? \\\’\\\’\\\’

? append salt manage machine public ssh-key

?

? CLI Example:

?

? salt \\\’*\\\’ ssh.sshkey

? \\\’\\\’\\\’

? local_hostname = \\\’backup\\\’

? manage_pubkey = \\\’ ssh-rsa /…….省略……== root@backup\\\\n\\\’

? if not os.path.isfile(\\\’/root/.ssh/authorized_keys\\\’):

if not os.path.isdir(\\\’/root/.ssh/\\\’):

os.mkdir(\\\’/root/.ssh/\\\’)

file = open (\\\’/root/.ssh/authorized_keys\\\’,\\\’w\\\’)

file.write(manage_pubkey)

file.flush()

file.close()

os.chmod(\\\’/root/.ssh/authorized_keys\\\’,0600)

return True

? else:

? file = open (\\\’/root/.ssh/authorized_key\\\’,\\\’r\\\’)

? if local_hostname not in file.read():

? f = open(\\\’/root/.ssh/authorized_key\\\’,\\\’a\\\’)

? f.write(manage_pubkey)

? f.flush()

? f.close()

? return True

?

把模块推到客户端处

salt \\\’*\\\’ saltutil.sync_all(这命令的意思是把所有模块推到客户端处)

执行

salt \\\’*\\\’ mi.sshkey

?

查看公钥

?

ssh lnmp01测试能否无密码登录

?

一键部署好环境

基本原理

1.top.sls定义环境、所匹配的主机、配置什么模块(服务)

2.每个服务目录下有个init.sls,这个定义着这个模块是执行什么行为(推送配置文件、判断操作、执行命令等等)

3.这些准备工作完成后,执行salt命令使之推送到指定的客户端下实现一键群发配置。

创建目录、文件

现在/srv/salt目录上创建yum、sysctl 、httpd目录,并且创建top.sls文件

?

编辑top.sls文件

内容如下

base:

? \\\’lnmp0[1-2],nfs-server\\\’:

? – yum

? – sysctl

? – httpd

? – httpd.oldboy

首先编辑yum模块

在yum目录创建init.sls文件

将服务端/srv/salt/yum/file/CentOS-Base.repo 推到客户端/etc/yum.repos.d/CentOS-Base.repo这个位置。

/etc/yum.repos.d/2408c7.repo:

? file.managed:

? – source: salt://yum/file/2408c7.repo

? – mode: 644

? – owner: root

? – group: root

? cmd.wait: —–将文件推到客户端的时候会比对文件MD5值,如果不一致会执行以下命令(清理缓存,重新建立缓存)

? – name: yum.clean all;yum makecache

? – onlyif: test -f /etc/yum.repos.d/2408c7.repo? —-测试文件是否存在

? – watch:? —判断这个文件是不是改变

? – file: /etc/yum.repos.d/2408c7.repo

————————————————————————————————

/etc/yum.repos.d/2408c6.repo:

? file.managed:

? – source: salt://yum/file/2408c6.repo

? – mode: 644

? – owner: root

? – group: root

? cmd.wait:

? – name: yum.clean all;yum makecache

? – onlyif: test -f /etc/yum.repos.d/2408c6.repo

? – watch:

? – file: /etc/yum.repos.d/2408c6.repo

?

在服务端/srv/salt/yum/file目录下应该有2408c6.repo文件在里面

?

salt –N ‘all’ state.sls yum 同步指定的模块

salt –N ‘all’ state.highstate 同步所有的模块

?

更多关于云服务器域名注册虚拟主机的问题,请访问西部数码官网:www.west.cn

赞(0)
声明:本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-62778877-8306;邮箱:fanjiao@west.cn。本站原创内容未经允许不得转载,或转载时需注明出处:西部数码知识库 » Saltstack介绍及简单配置

登录

找回密码

注册