1.1 准备实验环境: 安装系统

  1)硬件配置如下

      

  2) 先把光标放到”install CentOS 7”,按 Tab键编辑内核参数,添加 (net.ifnames=0 biosdevname=0)

    作用:使网卡名称为 eth0 这样的格式

    

  3) 建议安装语言改成 简体中文,其他保持默认即可

      

  4)设置完root密码等待安装完成重启即可完成系统安装

  5)配置 VMware NAT 模式默认地址池

      编辑----》虚拟网络编辑器

      

1.2 克隆一台虚拟机完成使用环境返回顶部

  1)配置网卡

      vi /etc/sysconfig/network-scripts/ifcfg-eth0

        

      systemctl restart network

      systemctl disable firewalld

      systemctl disable NetworkManager

  2)设置主机名

      vi /etc/hostname

        linux-node1.example.com

  3)设置主机名解析

      vi /etc/hosts

        192.168.56.11 linux-node1 linux-node1.example.com

        192.168.56.12 linux-node2 linux-node2.example.com

  4)设置DNS

      vi /etc/resolv.conf

        nameserver 192.168.56.2

  5)安装最新epel yum源

    注:此地址中有各种源(https://opsx.alibaba.com/mirror)

      rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm

  6)yum安装 一些基础包

      yum -y install net-tools vim lrzsz tree screen lsof tcpdump nc mtr nmap

   7)关闭selinux

      vim /etc/selinux/config

        SELINUX=disabled

   8)重启系统

      yum update -y && reboot          # 升级所有包同时也升级软件和系统内核, 并重启

   9)确认是否一些服务是否已按计划关闭

      getenforce          # selinux是否关闭

      firewall-cmd --state         # 防火墙是否关闭

1.2 克隆一台虚拟机完成使用环境   

   注:克隆虚拟机必须要先关闭(shutdown)

   1)右键 “管理” ----》“克隆” ----》

   2)选择 从哪个状态创建克隆

      

  3)克隆类型(创建完整克隆)

      

  4)新建虚拟机名称

      

  5)点击 “完成” 即可完成虚拟机克隆

  6)对克隆的虚拟机 node2 进行一些简单修改

      vim /etc/hostname       # 1、修改主机名

          linux-node2.example.com

      vi /etc/sysconfig/network-scripts/ifcfg-eth0 

          IPADDR=192.168.56.12

      reboot

1.3 saltstack介绍

  1、saltstack说明

      1)salt是一个异构平台基础设置管理工具(虽然我们通常只用在Linux上),使用轻量级的通讯器ZMQ
      2)用Python写成的批量管理工具,完全开源,遵守Apache2协议,与Puppet,Chef功能类似,有一个强大的远程执行命令引擎
      3)也有一个强大的配置管理系统,通常叫做Salt State System。

      4)主要作用: 远程执行、配置管理、事件驱动

          a.  远程执行: 及支持 使用agent 支持 使用ssh远程执行

          b. 配置管理: 如果用salt描述nginx,没有就会帮你安装,如果nginx配置不对就会帮你改对(保证机器状态和你描述一致)

      5)特点:即可支持 agent 方式,也支持 ssh方式

  2、基本原理

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

      2)minion上线后先与master端联系,把自己的pub key发过去,这时master端通过salt-key -L命令就会看到minion的key,接受该minion-key后,也就是master与minion已经互信

      3)master可以发送任何指令让minion执行了,salt有很多可执行模块,比如说cmd模块,在安装minion的时候已经自带了,它们通常位于你的python库中

  3、saltstack具体步骤如下

      1)Salt stack的Master与Minion之间通过ZeroMq进行消息传递,使用了ZeroMq的发布-订阅模式,连接方式包括tcp,ipc

      2)salt命令,将cmd.run ls命令从salt.client.LocalClient.cmd_cli发布到master,获取一个Jodid,根据jobid获取命令执行结果。

      3)master接收到命令后,将要执行的命令发送给客户端minion。

      4)minion从消息总线上接收到要处理的命令,交给minion._handle_aes处理

      5)minion._handle_aes发起一个本地线程调用cmdmod执行ls命令。线程执行完ls后,调用minion._return_pub方法,将执行结果通过消息总线返回给master

      6)master接收到客户端返回的结果,调用master._handle_aes方法,将结果写的文件中

      7)salt.client.LocalClient.cmd_cli通过轮询获取Job执行结果,将结果输出到终端。

  4、saltstack认证原理

      1)salt-master和salt-minion第一次启动时会在 /etc/salt/pki/master目录下生成公钥和私钥用于身份验证

          [root@linux-node1 master]# cd /etc/salt/pki/master

          [root@linux-node1 master]# ll -lh
          -r-------- 1 root root 1.7K Jan 7 05:36 master.pem
          -rw-r--r-- 1 root root 450 Jan 7 05:36 master.pub

      2)所有未认证minion的私钥都会放到master的  /etc/salt/pki/master/minions_pre/ 文件夹下

      3)当minion通过认证后就会放到 /etc/salt/pki/master/minions 文件夹下

      4)master通过在认证的同时会把自己的公钥发送给minion, minion会放到 /etc/salt/pki/minion/minion_master.pub

      5)这样就实现了双向密钥交换

1.4 saltstack安装

  注:saltstack官方提供了各种版本系统安装方法(地址:http://repo.saltstack.com/#rhel)

    1、在linux-node1 中安装saltstack master 和 minion

        yum -y install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm

        yum -y install salt-master salt-minion

          /etc/salt/master(master配置文件)

          /etc/salt/minion(minion配置文件)

    2、在linux-node2 中安装saltstack minion

        yum -y install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm

        yum -y install salt-minion

          /etc/salt/minion(minion配置文件)

    3、在linux-node1中配置 salt-minion

        vim /etc/salt/minion

          #master: salt   修改为(master: 192.168.56.11) ----》配置master IP

          #id:           修改为(id: linux-node1.example.com)   ---》告诉master自己是谁,默认会读取当前主机名

        注:saltstack是以主机名区分不同 agent 需保证主机名唯一

    4、在linux-node2中配置 salt-minion     

        vim /etc/salt/minion

          #master: salt   修改为(master: 192.168.56.11) ----》配置master IP

          #id:           修改为(id: linux-node2.example.com)   ---》告诉master自己是谁,默认会读取当前主机名

    5、启动linux-node1中salt-maser 和 salt-minion

        systemctl start salt-master       # 启动salt-master

        systemctl enable salt-master       # 设置salt-master开机自启动

        systemctl start salt-minion        # 启动

        systemctl enable salt-minion     # 开机自启动

    6、启动linux-node2中salt-minion

        systemctl start salt-minion        # 启动

        systemctl enable salt-minion      # 开机自启动

    7、认证

        salt-key             # 在master中查看所有key的状态

        salt-key -a linux-node1.example.com      # 认证 linux-node1.example.com的key

        salt-key -A          # 一次性认证所有key

    8、远程执行测试

        salt  \*  test.ping         # 测试saltstack minion与master的连通性

        salt \* cmd.run 'df -h'     # 在所有minion中批量执行 df -h 命令

stal 安装的更多相关文章

  1. windows下安装并启动hadoop2.7.2

    64位windows安装hadoop没必要倒腾Cygwin,直接解压官网下载hadoop安装包到本地->最小化配置4个基本文件->执行1条启动命令->完事.一个前提是你的电脑上已经安 ...

  2. docker——容器安装tomcat

    写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...

  3. 网络原因导致 npm 软件包 node-sass / gulp-sass 安装失败的处理办法

    如果你正在构建一个基于 gulp 的前端自动化开发环境,那么极有可能会用到 gulp-sass ,由于网络原因你可能会安装失败,因为安装过程中部分细节会到亚马逊云服务器上获取文件.本文主要讨论在不变更 ...

  4. Sublime Text3安装JsHint

    介绍 Sublime Text3使用jshint依赖Nodejs,SublimeLinter和Sublimelinter-jshint. NodeJs的安装省略. 安装SublimeLinter Su ...

  5. Fabio 安装和简单使用

    Fabio(Go 语言):https://github.com/eBay/fabio Fabio 是一个快速.现代.zero-conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的 ...

  6. gentoo 安装

    加载完光驱后 1进行ping命令查看网络是否通畅 2设置硬盘的标识为GPT(主要用于64位且启动模式为UEFI,还有一个是MBR,主要用于32位且启动模式为bois) parted -a optima ...

  7. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...

  8. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 1.实施前准备工作 1.1 服务器安装操 ...

  9. 【原】nodejs全局安装和本地安装的区别

    来微信支付有2年多了,从2年前的互联网模式转变为O2O模式,主要的场景是跟线下的商户去打交道,不像以往的互联网模式,有产品经理提需求,我们帮忙去解决问题. 转型后是这样的,团队成员更多需要去寻找业务的 ...

随机推荐

  1. zookeeper 随记

    ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务. zookeeper的几种模式: 1.单点模式 2.分布式集群模式,节点运行在多台机器 3.单点多实例 在这里只介绍单点多实例安装. ...

  2. ICEM-带死角弯管

    原视频下载地址:https://yunpan.cn/cqRiHaQiLi8I7  访问密码 b5c6

  3. Qt学习大全

    这边文章的目的是把自己之前写的关于Qt的文章整理归纳成一个Qt学习的专栏,会提供之前文章的导航,同时也会留一些坑待自己日后填. 1.Qt 元对象系统 2.Qt的信号和槽 3.Qt的插件开发 4.Qml ...

  4. 使用Qt Creator作为Linux IDE,代替Vim:实现两台Linux电脑远程部署和gdb调试(一台电脑有桌面系统,一台电脑无桌面系统)

      版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/libaineu2004/article/details/62423830 尊重作者,支持原创,如 ...

  5. echarts3.0之关系图详解

    近期需要使用echarts关系图,当我打开echarts3.0官方demo后发现,对于新手而言,直接看懂有点儿难度,固写这样一篇文章让自己加深记忆,也便新手迅速上手.话不多说,开整生气! echart ...

  6. Spring为什么@Autowired注入的是接口

    1.Spring怎么知道注入哪个实现? As long as there is only a single implementation of the interface and that imple ...

  7. 【分类算法】朴素贝叶斯(Naive Bayes)

    0 - 算法 给定如下数据集 $$T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\},$$ 假设$X$有$J$维特征,且各维特征是独立分布的,$Y$有$K$种取值.则 ...

  8. Linux C Socket编程:文件上传

    一个服务端等待, 客户端上传文件到服务端,通过输入要上传的文件名,目前只做到仅对当前执行文件的目录下的文件,应该在服务端收到文件路径之后进行处理的. 服务端代码: #include <netin ...

  9. 阶段5 3.微服务项目【学成在线】_day09 课程预览 Eureka Feign_16-课程预览功能开发-接口测试

    cms和课程的微服务重启 从数据库内找一条数据 进入到了断点 拼装课程信息 ,然后进行远程调用 抛出异常 可能是开了两个cms服务的事,负载均衡 到了另外一个服务里面 ,关掉一个 把02关掉,重启cm ...

  10. PAT 甲级 1045 Favorite Color Stripe (30 分)(思维dp,最长有序子序列)

    1045 Favorite Color Stripe (30 分)   Eva is trying to make her own color stripe out of a given one. S ...