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

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

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

  

  1. 9. Saltstack 配置管理服务
  2. vim /etc/salt/master
  3. 406 file_roots:
  4. 407 base:
  5. 408 - /srv/salt/
  6. mkdir /srv/salt
  7. 创建文件top.slsapache.sls ---python脚本注意缩进
  8. systemctl restart salt-master --->salt taotao.com state.highstate

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

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

    Fastjson前置知识 Fastjson 是一个 Java 库,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象. Fastjson 可以操作任何 ...

  2. Prometheus TSDB存储原理

    Prometheus 包含一个存储在本地磁盘的时间序列数据库,同时也支持与远程存储系统集成,比如grafana cloud 提供的免费云存储API,只需将remote_write接口信息填写在Prom ...

  3. javaWeb代码整理01-mysql

    jar包: maven坐标: <dependency> <groupId>mysql</groupId> <artifactId>mysql-conne ...

  4. HTTP:聊一聊HTTPS

    一.什么是https https是http的升级,因为http是明文传输的,所以非常不安全,https在http的基础上进行了数据加密. 二.https的加密方式 1.对称加密 服务端会给客户端发送一 ...

  5. java 中为什么重写 equals 后需要重写 hashCode

    本文为博主原创,未经允许不得转载: 1. equals 和 hashCode 方法之间的关系 这两个方法都是 Object 的方法,意味着 若一个对象在没有重写 这两个方法时,都会默认采用 Objec ...

  6. zookeeper篇-watch命令

    点赞再看,养成习惯,微信搜索「小大白日志」关注这个搬砖人. 文章不定期同步公众号,还有各种一线大厂面试原题.我的学习系列笔记. 每个路径节点都有一个watcher监控,当该节点数据改变时(CRUD), ...

  7. python学习-Day27

    目录 今日内容详细 动态方法与静态方法 动态方法 绑定给对象的方法 绑定给类的方法 静态方法 继承 继承的含义 继承的目的 继承的基本使用 继承的本质 名字的查找顺序 不继承的情况下 单继承的情况下 ...

  8. 自己的~/.vimrc

    " 语法高亮syntax on " 搜索高亮set hlsearch " 显示行号set number" let mapleader="," ...

  9. php 迭代器的学习

    在PHP中有一些预定义的类,比如迭代器类,有SPL提供.常用的几个类: Iterator------最基本的迭代器 IteratorAggregate --------可以提供一个迭代器的对象,但它本 ...

  10. 【机器学习基础】无监督学习(3)——AutoEncoder

    前面主要回顾了无监督学习中的三种降维方法,本节主要学习另一种无监督学习AutoEncoder,这个方法在无监督学习领域应用比较广泛,尤其是其思想比较通用. AutoEncoder 0.AutoEnco ...