SALTSTACK快速了解与简单实用

Posted MisterChen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SALTSTACK快速了解与简单实用相关的知识,希望对你有一定的参考价值。


  • salt是一个异构平台基础设置管理工具,使用轻量级的通讯器ZMQ,用Python写成的批量管理工具,完全开源,遵守Apache2协议,与Puppet,Chef功能类似,有一个强大的远程执行命令引擎,也有一个强大的配置管理系统,只需花费数分钟即可运行起来, 扩展性足以支撑管理上万台服务器,数秒钟即可完成数据传递. 经常被描述为 Func 加强版+Puppet 精简版;通常叫做Salt State System。

  • SaltStack 采用 C/S模式,server端就是salt的master,client端就是minion,minion与master之间通过ZeroMQ消息队列通信

  • saltstack支持的操作系统

  • saltstack基础架构

SALTSTACK快速了解与简单实用

  • saltstack安装部署

  • 环境一台saltstack服务,两台客户端,使用centos6

安装epel源(服务端和客户端都需要安装)

#centos 5: 

rpm -Uvh http://mirror.pnl.gov/epel/5/i386/epel-release-5-4.noarch.rpm

#centos6:

rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/i386/epel-release-6-8.noarch.rpm

安装salt-master,服务端

yum -y install salt-master

安装salt-minion,客户端

yum -y install salt-minion

安装完毕之后,salt-master用默认配置即可

修改salt-minion配置文件

vi /etc/salt/minion

id:#给客户端取一个名字,默认是客户机的主机名,如图所示(注意空格)

SALTSTACK快速了解与简单实用SALTSTACK快速了解与简单实用

  • 启动服务

启动服务端和客户端

客户端:/etc/init.d/salt-minion start

服务端:/etc/init.d/salt-master start


SALTSTACK快速了解与简单实用

  • 常用命令

列出当前所有key

Salt-key -L

接受指定的key

Salt-key –a salt-minion01 -y

接受所有key

Salt-key –A -y

删除指定的key

Salt-key –d salt-minion01 -y

删除所有key

Salt-key –D -y

  • 在服务端查看客户端,红色表示已经找到客户端,但是现在还没有加入到服务端

SALTSTACK快速了解与简单实用

  • 将客户端添加至允许操作

SALTSTACK快速了解与简单实用

  • 下面我进行一些常规批量操作

SALTSTACK快速了解与简单实用SALTSTACK快速了解与简单实用SALTSTACK快速了解与简单实用

  • 如果客户机salt使用的是默认ID,且客户端更换了主机名,如何重新加入master?

1.服务端先把无法访问的主机剔除掉。

2.然后在客户端删除一下两个文件,然后重新启动

rm –rf /etc/salt/minion_id

rm –rf /etc/salt/pki/

SALTSTACK快速了解与简单实用

  • Salt如何查看帮助文档

    在服务端执行

    salt ‘salt-client01' sys.doc > salt.txt

    然后查看文档

    SALTSTACK快速了解与简单实用

在官网查看使用帮助 

https://docs.saltstack.com/en/latest/

SALTSTACK快速了解与简单实用
SALTSTACK快速了解与简单实用

  • 批量分发文件和目录


SALTSTACK快速了解与简单实用
SALTSTACK快速了解与简单实用SALTSTACK快速了解与简单实用SALTSTACK快速了解与简单实用

  • 新的master服务端配置并启用
    将第一台服务端的PKI目录拷贝到本地指定目录,然后启动查看

    SALTSTACK快速了解与简单实用SALTSTACK快速了解与简单实用
    SALTSTACK快速了解与简单实用
    SALTSTACK快速了解与简单实用

  • Return记录返回处理结果

    SALTSTACK快速了解与简单实用

  • 客户端查看日志

SALTSTACK快速了解与简单实用

  • 常用模块命令

1.cp(实现远程文件,目录复制,以及下载URL文件等)

salt ‘*’ cp.get_dir salt://dir-test /root#复制目录

salt ‘*’ cp.get_file salt://file-test /root/file-test#复制文件

salt ‘*’ cp.get_url http://xxx.org/down/xxx.tar.gz /root/xxx.tar.gz #下载URL

2.cmd(实现远程命令调用执行)

salt ‘*’ cmd.run ‘netstat -natup’

salt ‘*’ cmd.exec_code python ‘import sys; print sys.version

3.cron(实现客户机crontab操作)

#增加计划任务

salt ‘*’ cron.set_job root ‘00’ ‘00’ ‘*’ ‘*’ ‘*’ ‘/usr/sbin/ntpdate 202.112.31.197 > /dev/null 2>&1‘

salt ‘*’ cron.rm_job root ‘/usr/sbin/ntpdate 202.112.31.197 > /dev/null 2>&1‘#删除计划任务

salt ‘*’ cron.raw_cron root   #显示客户机计划任务列表

4.dnsutil(实现客户机DNS操作)

salt '*' dnsutil.hosts_append /etc/hosts 127.0.0.1 new.liketry.com

5.service(客户机程序管理)

salt ‘*’ service.status nginx

salt ‘*’ service.start nginx

salt ‘*’ service.stop nginx

salt ‘*’ service.restart nginx

salt ‘*’ service.reload nginx

  • States & YAML

Salt状态系统核心是sls,或者叫salt state文件。SLS表示系统将会是一个什么样的状态,而且是一种很简单的格式包含这些数据。经常也被叫做配置管理。

SLS文件内容实际只是一些词典、列表、字符串、数字。它使用的是YAML语法,YAML语法特点:

1.YAML使用一个固定的缩进风格表示数据层结构关系。需要每个缩进级别有两个空格组成,不能使用tab.

2.字典的keys在YAML中表现形式是一个以冒号结尾的字符串。Values的表现是冒号下面每一行,用空格隔开

3.想要表现列表项,使用一个短横杠加一个空格。多个项使用同样的缩进级别作为同一列表的一部分

  • 下面我们批量安装Nginx

  • SALTSTACK快速了解与简单实用SALTSTACK快速了解与简单实用salt 'salt-client01' state.sls ini

    SALTSTACK快速了解与简单实用

  • 自动更新nginx配置文件



以上是关于SALTSTACK快速了解与简单实用的主要内容,如果未能解决你的问题,请参考以下文章

saltstack安装部署以及简单实用

SaltStack salt-ssh 用法

saltstack 安装使用

SaltStack快速了解

图书┃SaltStack技术入门与实战(内附书单)

Saltstack快速部署