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. Invalid JDK version in profile 'doclint-java8-disable': Unbounded range: [1.8, for project com.google.code.gson:gson 解决办法

    利用maven打包的时候遇到这个问题 在git上发现一个解决方案 问题解决

  2. angularJs driective指令小实例

    做一个下拉菜单,体会指令各参数的作用 html代码 <script type="text/ng-template" id="mydropdown.html" ...

  3. python3实例

    1.一行代码求一个数的阶乘 例如:求5的阶乘 from functools import reduce print((lambda k: reduce(, k+), ))()) 借鉴:https:// ...

  4. Centos 7设置静态IP,修改时区,关闭防火墙

    Centos 7设置静态IP # vi /etc/sysconfig/network-scripts/ifcfg-enxxx BOOTPROTO="static" ...... I ...

  5. 【原】Python基础-字典

    字典是Python唯一内建的映射类型.键可以是数字,字符串和元组. 1 字典的创建 方法一:直接创建 例如: >>> dict = {'key1':'value1', 20: 80} ...

  6. HttpClient学习(四)—— 关于Http

    一.Http状态码 状态码分类 100 ~ 199 信息提示 200 ~ 299 成功 300 ~ 399 重定向 400 ~ 499 客户端错误 500 ~ 599 服务端错误 常见状态码 200 ...

  7. OpenWrt笔记

    ## 1. OpenWrt目录结构说明 作者:辛勤的摆渡人 来源:CSDN 原文:https://blog.csdn.net/hunter168_wang/article/details/507805 ...

  8. django + vue3 解决跨越问题

    django跨域 解决: https://yq.aliyun.com/articles/517215 vue3 跨越(此处没必要,django处理即可): https://blog.csdn.net/ ...

  9. Mininet系列实验(四):基于Mininet测量路径的损耗率

    1 实验目的 熟悉Mininet自定义拓扑脚本的编写与损耗率的设定: 熟悉编写POX脚本,测量路径损耗速率 2 实验原理 在SDN环境中,控制器可以通过对交换机下发流表操作来控制交换机的转发行为,此外 ...

  10. Fiddler自动响应AutoResponder正则匹配

    AutoResponder-Add-Rule Editor 两个文本框,先说第一个: Mathes: 前缀为“EXACT:”表示完全匹配(大小写敏感) 无前缀表示基本搜索,表示搜索到字符串就匹配 前缀 ...