SaltStack除了传统的C/S架构外,其实还有Masterless架构,如果采用Masterless架构,我不需要单独安装一台SaltStack Master机器,只需要在每台机器上安装Minion,然后采用本机只负责对本机的配置管理工作机制服务模式.

Saltstack三大功能
远程执行(执行远程命令)
配置管理(状态管理)
云管理 Saltstack特征
1)部署简单、方便;
2)支持大部分UNIX/Linux及Windows环境;
3)主从集中化管理;
4)配置简单、功能强大、扩展性强;
5)主控端(master)和被控端(minion)基于证书认证,安全可靠;
6)支持API及自定义模块,可通过Python轻松扩展。 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的连接
SaltStack master启动后默认监听4505和4506两个端口。4505(publish_port)为saltstack的消息发布系统,4506(ret_port)为saltstack客户端与服务端通信的端口。如果使用lsof 查看4505端口,会发现所有的minion在4505端口持续保持在ESTABLISHED状态。
1. saltstack安装配置
服务端:
IP:122.114.73.247 Hostname:doupo.com
客户端:
IP:122.114.154.79 Hostanme:cangqiong.com 2. 配置FQDN,让ip和主机名对应 vim /etc/hosts
122.114.73.247 doupo.com doupo
122.114.154.79 cangqiong.com cangqiong
scp /etc/hosts root@122.114.154.79:/etc/ 3. 关闭防火墙和selinux
服务端:
yum install epel-release -y #安装 epel源
yum install salt-master salt-minion -y #安装服务端和被监控端服务
客户端:
yum install epel-release -y && yum install salt-minion –y
#被控端:安装被监控端服务
服务端配置:
vim /etc/salt/minion
在16行增加
master: 122.114.73.247 #服务端地址
systemctl start salt-master
systemctl start salt-minion
客户端:
vim /etc/salt/minion
在16行增加:master: 122.114.73.247 #服务端地址
systemctl start salt-minion
ps -ef | grep salt 查看进程
4. 配置认证(在服务端操作)
salt-key -a cangqiong.com #对客户端主机进行签名
salt-key -A #对所有主机进行签名 -d 删除指定的主机 salt-key -L 查看证书签署情况
5. 测试主机是否在线
salt '*' test.ping #对所有签名的客户端进行ping
salt 'cangqiong.com' test.ping
salt 'qiongcang.com' cmd.run 'system start httpd' #远程执行命令
6.  saltstack之grains
GRAINS 组件是saltstack中非常重要的一个组件,其主要用于记录Minion的一些静态信息,如比:CPU、内存、磁盘、网络等。grains信息是每次客户端启动后自动上报给master的,一旦这些静态信息发生改变需要重启minion 或者 重新同步下 grains。
salt 'cangqiong' grains.ls #列出所有的grains项目名称
salt cangqiong grains.items #列出所有的grains项和对应的值
启动grains的信息并不是动态的,并不会时时变更,它只是在minion启动时收集到的,我们可以根据grains收集到的一些信息,做配置管理工作,可以支持自定义一些监控项 7. 自定义grains
需要在客户端上添加文件grains
vim /etc/salt/grains
role:client
env:test
myname:cangqiong Linux
myhostname:cangqiong
systemctl restart salt-minion
执行salt cangqiong grains.items 或者salt cangqiong grains.item env查看
       还可以使用salt -G env:test cmd.run 'w' salt -G env:test cmd.run 'id'

8.  saltstack之pillar
grains用于存储静态不易变更的数据,而pillar一般用来存储动态的、敏感的数据;通过minion端和master端都可以配置设置或获取grains信息,而pillar信息只能在master端配置,再到minion端执行。
pillar和grains不一样,是在master上定义的,并且是针对minion定义的一些信息,可以自定义变量等 自定义配置pillar过程:
vim /etc/salt/master
找到pillar_roots取消下面三行的注释
pillar_roots:
base:
- /srv/pillar
创建pillar文件的存放目录:
mkdir -p /srv/pillar
vim test.sls vim /srv/pillar/top.sls
conf: /etc/123.conf base:
myname: saltstack-server 'cangqiong.com':
- test
systemctl restart salt-master
salt '*' saltutil.refresh_pillar #刷新获取新状态
salt '*' pillar.items #查看items

  

9. Saltstack 配置管理服务
vim /etc/salt/master
406 file_roots:
407 base:
408 - /srv/salt/
mkdir /srv/salt
创建文件top.sls,apache.sls ---python脚本注意缩进
systemctl restart salt-master --->salt taotao.com state.highstate

10. 配置远程文件管理
vim file.sls
file_test:
file.managed:
- name: /tmp/linux.txt
- source: salt://test/xiaoxiao.php
- user: root
- group: root
- mode: 644
注意:第一行的 file-test 为自定的名字,表示该配置段的名字,可以在别的配置段中引用它;source指定文件从哪里拷贝,这里的 test 目录相当于是 /srv/salt/test 目录;name指定远程客户端要生成的文件。
mkdir -p /srv/salt/test ---> ehco "hello world" >/etc/salt/test/xiaoxiao.php
在/etc/salt/top.sls
- apache下面加上 - file
测试: salt taotao.com state.highstate

11. saltstack远程执行命令
vim cmd.sls
cmd_test:
cmd.run:
- unless: test -f /tmp/1111text.txt
- names:
- touch /tmp/11.txt
- mkdir /tmp/1233
- user: root
注意:unless: 表示若/tmp/xuegodtext.txt文件不存在,也就是结果为True则执行-name后面的命令,为false则不执行;还可以使用 onlyif 表示若/tmp/xuegodtext.txt文件存在,则执行后面的命令;两者正好相反。
11. saltstack远程执行shell脚本
vim shell.sls
shell_test:
cmd.script:
- source: salt://test/1.sh
- user: root vim top.sls
base:
'taotao.com':
- shell #此名为上面创建的shell.sls
lamp_test:                        -----lamp.sls
cmd.script:
- source: salt://linux.sh
cmd_test:
cmd.run:
- names:
- systemctl start mariadb
- echo -e "<?php\n phpinfo();\n?>" >/var/www/html/index.php
- systemctl start httpd
-------------------------------------------------------------------------------------------
base: -----top.sls
'taotao.com':
- lamp
lamp_test:          -----lamp.sls
cmd.script:
- source: salt://linux.sh
-----------------------------------------------------------------------------
cmd_test: -----cmd.sls
cmd.run:
- names:
- touch /tmp/index.html
- echo "12332112345677654321" > /tmp/index.html
-----------------------------------------------------------------------------
base: -----top.sls
'taotao.com':
- lamp
- cmd

 

salt stack安装与使用的更多相关文章

  1. 利用salt stack pillar安装多组keepalived

    利用salt stack pillar安装多组keepalived 环境描述 在生产环境中,需要搭建三套keepalived环境,3个master和3个backup,要安装的软件和配置文件,虽然不是很 ...

  2. salt stack 工具之一——远程命令

    salt stack 远程命令 salt stack是一种自动化的运维工具,可以同时对N台服务器进行配置管理.远程命令执行等操作. salt stack分为两个部分: salt-master,部署在控 ...

  3. 七天学会 SALT STACK 自动化运维 (1)

    七天学会 SALT STACK 自动化运维 (1) 简单理解 SALTSTACK 安装与配置 基本的使用方法 结束语 引用资源 简单理解 SALT STACK 笔者是初次接触 自动化运维 这一技术领域 ...

  4. Salt Stack 官方文档翻译 - 一个想做dba的sa - 博客频道 - CSDN.NET

    OSNIT_百度百科 Salt Stack 官方文档翻译 - 一个想做dba的sa - 博客频道 - CSDN.NET Salt Stack 官方文档翻译 分类: 自动运维 2013-04-02 11 ...

  5. salt stack 远程命令

    salt stack 远程命令 salt stack是一种自动化的运维工具,可以同时对N台服务器进行配置管理.远程命令执行等操作. salt stack分为两个部分 salt-master,部署在控制 ...

  6. Elastic Stack 安装

    Elastic Stack 是一套支持数据采集.存储.分析.并可视化全面的分析工具,简称 ELK(Elasticsearch,Logstash,Kibana)的缩写. 安装Elastic Stack ...

  7. salt stack学习笔记

    saltstack运行模式: local master/minion salt ssh saltstack三大功能 远程执行命令 配置管理(状态管理) 云管理 安装: master  salt-mas ...

  8. salt yum安装lamp

    在批量安装软件前,先找台测试机yum装一遍,看是否报错等,是否依赖包全等 .         本次我们在dev环境下搞. 先看一下已搞成功的目录结构         定义dev环境的第二个好处     ...

  9. elastic stack安装运行(docker)

    https://www.docker.elastic.co 注:目前阿里云为7.4 elasticsearch 参考https://www.elastic.co/guide/en/elasticsea ...

随机推荐

  1. 学习打卡——CentOS 7安装

    本来今天是要学习redis的,但是redis官方又不支持在win下运行,windows版本目前都是微软官方在维护.redis最新版都已经更新到7.0了,windows却还是只有3.x版本.所以随性就去 ...

  2. Java基础语法Day_04

    第11节 开发工具-IDEA day04_01_集成开发环境IDE的概述 day04_02_IntelliJ-IDEA的安装 day04_03_IDEA的项目结构 day04_04_IDEA的Hell ...

  3. 『现学现忘』Git基础 — 18、Git对象的总结

    目录 1.Git操作最基本的流程 2.工作目录中文件的状态 3.Git效率说明 提示:前面三篇文章已经分别的对blob对象.tree对象.commit对象进行了详细的说明,这篇文章我们总结一下,Git ...

  4. 手写useState与useEffect

    手写useState与useEffect useState与useEffect是驱动React hooks运行的基础,useState用于管理状态,useEffect用以处理副作用,通过手写简单的us ...

  5. Response.Write中文乱码问题

    接手别人的一个ASP项目,功能是页面按钮下载Excel导出数据. 每次导出某一天的数据会出现excel中文乱码,其他天又没问题,因为数据量比较大,所以没有逐条去检查. 找了一些资料 https://w ...

  6. 【爬虫+情感判定+Top10高频词+词云图】“刘畊宏“热门弹幕python舆情分析

    一.背景介绍 最近一段时间,刘畊宏真是火出了天际,引起一股全民健身的热潮,毕竟锻炼身体,是个好事! 针对此热门事件,我用Python的爬虫和情感分析技术,针对小破站的弹幕数据,分析了众多网友弹幕的舆论 ...

  7. MyBatisPlus 入门教程,这篇很赞

    在之前的文章中我们经常使用MybatisPlus进行增删改查,可能有些小伙伴对mybatisplus不是很熟悉,今天特意出了一般入门级的教程,我自己也是一边学习一边写的,有什么地方写的不好的地方请留意 ...

  8. 溢出属性,定位,z-index,JS

    溢出属性 1.visible(默认值):使溢出内容展示 2.hidden:隐藏溢出内容且不出现滚动条 3.scroll:隐藏溢出容器的内容,溢出的内容可以通过滚动呈现 4.auto:与scroll没啥 ...

  9. JUC的数据库连接池小练习

    JUC练习数据库连接池实现 通过一个连接数组来充当连接池 一个原子的标记数组 通过cas来保持多线程下的安全,用synchronized来进行暂停和唤醒 @Slf4j public class MyC ...

  10. Spring 源码(14)Spring Bean 的创建过程(5)

    到目前为止,我们知道Spring创建Bean对象有5中方法,分别是: 使用FactoryBean的getObject方法创建 使用BeanPostProcessor的子接口InstantiationA ...