服务器端:192.168.3.87

客户端:192.168.3.86、192.168.3.108





1.salt服务器端安装 192.168.3.87



rpm -Uvh http://mirrors.yun-idc.com/epel/6Server/x86_64/epel-release-6-8.noarch.rpm

yum install -y salt-master



2.安装minion客户端

rpm -Uvh http://mirrors.yun-idc.com/epel/6Server/x86_64/epel-release-6-8.noarch.rpm

yum install -y salt-minion





报错:

--> Finished Dependency Resolution

Error: Package: salt-2015.5.10-2.el6.noarch (epel)

           Requires: PyYAML

Error: Package: salt-2015.5.10-2.el6.noarch (epel)

           Requires: m2crypto

Error: Package: salt-2015.5.10-2.el6.noarch (epel)

           Requires: python-requests

Error: Package: salt-2015.5.10-2.el6.noarch (epel)

           Requires: python-jinja2

 You could try using --skip-broken to work around the problem

 You could try running: rpm -Va --nofiles --nodigest





解决办法:

将所有的本地源删除,只保留系统和epel源,重新安装即可



3.客户端配置salt master dns解析

echo "192.168.3.87 salt" >>/etc/hosts



启动服务端

service salt-master start





可以将服务端debug功能打开

vim /etc/salt/master

log_level: debug





netstat -lnt

可以看到4506和4505两个端口已经开始监听

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address               Foreign Address             State      

tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      

tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      

tcp        0      0 0.0.0.0:57718               0.0.0.0:*                   LISTEN      

tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      

tcp        0      0 0.0.0.0:4505                0.0.0.0:*                   LISTEN      

tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      

tcp        0      0 0.0.0.0:4506                0.0.0.0:*                   LISTEN      

tcp        0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN      

tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN 





客户端的salt文件列表

tree /etc/salt

/etc/salt

├── minion

├── minion.d

│   └── _schedule.conf

├── minion_id

└── pki

    └── minion

        ├── minion_master.pub

        ├── minion.pem

        └── minion.pub









列出所有的客户端

salt-key -L

Accepted Keys:

Denied Keys:

Unaccepted Keys:

centossz008

Rejected Keys:

添加指定客户端

[root@node2 test]# salt-key -a centossz008 

The following keys are going to be accepted:

Unaccepted Keys:

centossz008

Proceed? [n/Y] y

Key for minion centossz008 accepted.





添加指定客户端无需确认

salt-key -A 192.168.3.108 -y

The following keys are going to be accepted:

Unaccepted Keys:

192.168.3.108

Key for minion 192.168.3.108 accepted.





测试连通性

salt '*' test.ping

192.168.3.108:

    True

centossz008:

    True





批量执行命令:

查看时间

salt '*' cmd.run date

时间同步

salt '*' cmd.run 'ntpdate -u ntp.org'





举例

1.修改客户端的主机名由centossz008更名为minion_client01

hostname minion_client01





vim /etc/sysconfig/network

HOSTNAME=minion_client01





删除客户端之前保存的相关认证信息

rm -rf minion_id pki





服务端删除原有认证

salt-key -d centossz008 -y

Deleting the following keys:

Accepted Keys:

centossz008

Key for minion centossz008 deleted.





重启客户端后在服务端重新认证

salt-key -A -y

The following keys are going to be accepted:

Unaccepted Keys:

minion_client01.DHCP

Key for minion minion_client01.DHCP accepted.





salt '*' cmd.run 'grep salt /etc/hosts'

minion_client01.DHCP:

    192.168.3.87 salt

192.168.3.108:

    192.168.3.87 salt





2.更换salt-master主机

当master主机性能承载不了大批量机器的的时候,需要更换主机

原有主机:192.168.3.87

目标主机:192.168.3.54





①在目标master主机3.54上安装salt-master





rpm -Uvh http://mirrors.yun-idc.com/epel/6Server/x86_64/epel-release-6-8.noarch.rpm

yum install -y salt-master

Loaded plugins: fastestmirror, security

Determining fastest mirrors





报错:

Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again





执行:

yum-config-manager --disable epel-testing

把epel-testing这个库从yum库里面禁用掉

发现是启用了/etc/yum.conf中的代理,取消即可





②将原主机中/etc/salt下的pki目录打包拷贝到目标机3.54的/etc/salt目录下

tar zcvf pki.tar.gz pki

scp pki.tar.gz root@192.168.3.54:/etc/salt





③目标master中解压pki目录

tar -zxvf pki.tar.gz





tree pki

pki

└── master

    ├── master.pem

    ├── master.pub

    ├── minions

    │   ├── 192.168.3.108

    │   └── minion_client01.DHCP

    ├── minions_autosign

    ├── minions_denied

    ├── minions_pre

    └── minions_rejected





启动服务

service salt-master star





④在原master主机中执行命令将minion客户端中的hosts文件改为新的master主机

# salt '*' cmd.run "grep salt /etc/hosts"

minion_client01.DHCP:

    192.168.3.87 salt

192.168.3.108:

    192.168.3.87 salt





salt '*' cmd.run "sed -i 's#192.168.3.87#192.168.3.54#' /etc/hosts"

minion_client01.DHCP:

192.168.3.108:





重启minion服务

salt '*' service.restart salt-minion

此时发现原主机已经无法执行命令了

[root@node2 salt]# salt '*' cmd.run "grep salt /etc/hosts"

192.168.3.108:

    Minion did not return. [No response]

minion_client01.DHCP:

    Minion did not return. [No response]





在新的master上执行命令测试,发现ok,说明主机成功迁移





salt '*' cmd.run date

192.168.3.108:

    Sun Aug  7 10:43:04 CST 2016

minion_client01.DHCP:

    Sun Aug  7 10:43:04 CST 2016





服务器端修改端口





syndic_master_port: 8506

publish_port: 9036

saltStack运维工具的部署及master迁移实现的过程详解的更多相关文章

  1. Python自动化运维工具-Fabric部署及使用总结

    使用shell命令进行复杂的运维时,代码往往变得复杂难懂,而使用python脚本语言来编写运维程序,就相当于开发普通的应用一样,所以维护和扩展都比较简单,更重要的是python运维工具fabric能自 ...

  2. 【搭建Saltstack运维工具】

    目录 所谓Salt 开始搭建 配置接受密钥 salt命令 YAML详解 目标定位字符串 state模块定义主机状态 Salt采集静态信息之GrainsSalt @(Saltstack) *** 所谓S ...

  3. saltstack运维工具

    salt介绍 saltstack是由thomas Hatch于2011年创建的一个开源项目,设计初衷是为了实现一个快速的远程执行系统. salt强大吗 系统管理员日常会进行大量的重复性操作,例如安装软 ...

  4. Linux基础—saltstack运维工具学习

    一.saltstack简介 1.saltstack是什么 系统管理员日常会进行大量的重复性操作,例如安装软件,修改配置文件,创建用户,批量执行命令等,如果主机数量庞大,单靠人工维护实在让人难以忍受. ...

  5. 自动化运维工具ansible部署以及使用

    测试环境master 192.168.16.74webserver1 192.168.16.70webserver2 192.168.16.72安装ansiblerpm -Uvh http://ftp ...

  6. 自动化运维工具SaltStack详细部署

    ==========================================================================================一.基础介绍==== ...

  7. 自动化运维工具SaltStack详细部署【转】

    ==========================================================================================一.基础介绍==== ...

  8. 自动化运维工具 SaltStack 搭建

    原文地址:https://www.ibm.com/developerworks/cn/opensource/os-devops-saltstack-in-cloud/index.html#N10072 ...

  9. linux自动化运维工具Ansible saltstack Puppet、Chef、Fabric之间的对比

    发现分布式是一个发展的趋势,无论是大型网站的负载均衡架构还是大数据框架部署,以及云存储计算系统搭建都离不开多台服务器的连续部署和环境搭建. 当我们的基础架构是分散式或者基于云的,并且我们经常需要处理在 ...

随机推荐

  1. B2C商城关键技术点总结(站内搜索、定时任务)

    1.站内搜索 1.1Lucene.Net建立信息索引 string indexPath = @"E:\xxx\xxx";//索引保存路径 FSDirectory directory ...

  2. 基于SpringMVC的文件(增删改查)上传、下载、更新、删除

    一.项目背景 摘要:最近一直在忙着项目的事,3个项目过去了,发现有一个共同的业务,那就是附件的处理,附件包括各种文档,当然还有图片等特殊文件,由于时间的关系,每次都是匆匆忙忙的搞定上线,称这项目的空档 ...

  3. SQL Server 增、删、改、小部分查

    --现有三个表Student.Score.Course.Teacher create table Student ( Sno ) not null,--学号 Sname ) not null,--姓名 ...

  4. 【POJ1151】Atlantis

    题目大意:给定 N 个矩形,求这些矩形的面积并. 题解:采用扫描线算法. 首先,按照矩形的横坐标排序,在纵坐标方向上维护一根扫描线被覆盖的长度,在这里采用线段树维护.统计答案时,从左到右扫描 2N 个 ...

  5. JSP总结(一)——基础(汇总)

    前言:原本呢,是打算只写个JSP的内置对象总结,但是没想到这个家伙的JSP总结非常不错,我就拿来用了. 注:后缀为汇总的基本上是整理一些网上的. 借鉴地址:http://www.cnblogs.com ...

  6. 理解for循环

    先给大家出一个小题目,看看最终我们的i的值是多少? for(var i=0;i<10;i+=2){ if(i<=5){ i++; continue; }else{ i--; break; ...

  7. Ansible playbook 批量修改服务器密码 先普通后root用户

    fsckzy   Ansible playbook 批量修改服务器密码 客户的需求:修改所有服务器密码,密码规则为Rfv5%+主机名后3位 背景:服务器有CentOS6.7,SuSE9.10.11,r ...

  8. 牛客多校第三场 A- PACM Team 背包/记忆路径

    https://www.nowcoder.com/acm/contest/141#question 一眼背包,用四维dp记录在A,B,C,D条件限制下可以获得的最大知识点,但是题目要求输出路径,在输入 ...

  9. vue2.0 之条件渲染

    条件渲染v-if.v-show <template> <div> <a v-if="isPartA">partA</a> <a ...

  10. git使用详细过程

    1. Git概念 1.1. Git库中由三部分组成        Git 仓库就是那个.git 目录,其中存放的是我们所提交的文档索引内容,Git 可基于文档索引内容对其所管理的文档进行内容追踪,从而 ...