11.1、如何一键自动化安装50台规模集群网站搭建:

1、自动化思路:

kickstart无人值守安装linux系统(自动创建用户、密码、优化);

分发机上创建秘钥对、批量发走公钥(expect);

写部署及优化脚本、批量发到各个服务器上,远程执行安装;

2、高级架构师:

cobbler无人值守安装linux系统(自动创建用户、密码、优化,saltstack客户端)

服务端satl上创建认证,写配置来批量安装管理各个节点服务器应用

kvm虚拟化、根据不同的业务提前做好镜像,linux基础优化,saltstack客户端

通过云计算工具openstack管理镜像,批量生成虚拟机

3、自动化运维:

需求分析 cdn;

机房设备上下架;

虚拟机:弹性、扩展性、充分利用资源;

系统初始化;

应用环境初始化;

应用的部署 调试 配置;

代码发布;

服务监控 应用 (系统cpu、硬盘、内存);

数据备份;

4、自动化发展的阶段:

环境的统一;

标准化:比如软件/usr/local/xxx/opt;

文档化;

工具化;

web化;

平台化;

11.2、ssh key + expect:

1、前期准备:

各个服务器的ssh配置文件已经优化,禁用root用户ssh登录,更改服务器监听的端口号和监听的端口;

[root@m01 ~]# useradd lc(所有的服务器都要建立相同的用户,lc)

[root@m01 ~]# echo '123456' | passwd --stdin lc(所有的服务器lc用户都要建立相同的密码)

[root@m01 ~]# echo ‘lc ALL=(ALL) NOPASSWD:ALL(所有的服务器都lc用户都要sudo权限)

[lc@m01 .ssh]$ ssh-keygen -t dsa -P ' ' -f ~/.ssh/id_dsa >/dev/null 2>&1

[root@m01 ~]# yum install expect -y

[lc@m01 ~]$ mkdir -p /server/scripts

2、创建秘钥对、批量发送公钥(expect),批量发到各个服务器上,远程执行安装服务(一次):

(1)[root@m01 ~]$ vim /server/scripts/fenfa_sshkey.exp

#!/usr/bin/expect

if { $argc != 2 } {

send_user "usage: expect fenfa_sshkey.exp file host dir\n"

exit 1

}

set file [ lindex $argv 0 ]

set host [ lindex $argv 1 ]

#set dir [ lindex $argv 2 ]

set password "123456"

spawn ssh-copy-id -i $file "-p 52113 lc@$host"

expect {

"yes/no" {send "yes\n";exp_continue}

"*password" {send "$password\n"}

}

expect eof

exit -onexit {

send_user "success!\n"

}

#expect fenfa_sshkey.exp ~/.ssh/id_das.pub 172.168.1.31

(2)[root@m01 ~]$ vim /server/scripts/fenfa_sshkey.sh

#!/bin/sh

. /etc/init.d/functions

export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

#1 create dsa key

ssh-keygen -t dsa -P ' ' -f ~/.ssh/id_dsa >/dev/null 2>&1

if [ $? -eq 0 ];then

action "create dsa 172.16.1.61" /bin/true

else

action "create dsa 172.16.1.61" /bin/false

exit 1

fi

#2 sed id_dsa.pub

for n in 8 31 41;do

expect fenfa_sshkey.exp ~/.ssh/id_dsa.pub 172.16.1.$n >/dev/null 2>&1

if [ $? -eq 0 ];then

action "sed id_dsa.pub 172.16.1.$n" /bin/true

else

action "sed id_dsa.pub 172.16.1.$n" /bin/false

fi

done

#3 install service

for n in 8 31 41;do

ssh -t -p 52113 lc@172.16.1.$n sudo yum install httpd -y >/dev/null 2>&1

if [ $? -eq 0 ];then

action "install httpd 172.16.1.$n" /bin/true

else

action "install httpd 172.16.1.$n" /bin/false

fi

done

[lc@m01 ~]$ sh /server/scripts/fenfa_sshkey.sh

11、ssh自动化脚本编写的更多相关文章

  1. java+selenium自动化脚本编写

    实训项目:创盟后台管理,页面自动化脚本编写 使用工具:java+selenium 1)java+selenium环境搭建文档 2)创盟项目后台管理系统链接 java+selenium环境搭建 一.Se ...

  2. 自动化脚本编写环境部署_win7(RF)

    第一步 安装Python并设置环境变量 1.安装python: python下载地址https://www.python.org/,建议用2.7.x版本 2.设置环境变量: 方法如下所示  第二步 安 ...

  3. Selenium2学习-018-WebUI自动化实战实例-016-自动化脚本编写过程中的登录验证码问题

    日常的 Web 网站开发的过程中,为提升登录安全或防止用户通过脚本进行黄牛操作(宇宙最贵铁皮天朝魔都的机动车牌照竞拍中),很多网站在登录的时候,添加了验证码验证,而且验证码的实现越来越复杂,对其进行脚 ...

  4. 《手把手教你》系列基础篇(五)-java+ selenium自动化测试- 创建首个自动化脚本(详细教程)

    1.简介 前面几篇宏哥介绍了两种(java和maven)环境搭建和三大浏览器的启动方法,这篇文章宏哥将要介绍第一个自动化测试脚本.前边环境都搭建成功了,浏览器也驱动成功了,那么我们不着急学习其他内容, ...

  5. RobotFramework自动化测试之脚本编写(一)

    接触了上一篇的RF环境搭建及安装,相比大家都会觉得,哇塞,为什么要做这么多,那么复杂?装那么多干什么有什么用?写脚本会不会也很复杂? 其实首次安装的话 会觉得有点蒙,也不知道安装那么多是拿来干什么的, ...

  6. 20181225-Linux Shell Bash环境下自动化创建ssh互信脚本

    20181225-Linux Shell Bash环境下自动化创建ssh互信脚本 1. 我的Blog 博客园 https://www.cnblogs.com/piggybaba/ 个人网站 http: ...

  7. Python+Appium自动化测试(3)-编写自动化脚本

    之前一篇博客已经讲述怎样手动使用appium-desktop启动测试机上的app,但我们实际跑自动化脚本的过程中,是需要用脚本调用appium启动app的,接下来就尝试写Python脚本启动app并登 ...

  8. shell脚本编写笔记

    包含转载内容,转载自http://wenku.baidu.com/link?url=jtCHxEYzgGve6P64U3JRQRgU6nhpGvqFLLpWu9I2Htq6hi9TGLudRFkk7r ...

  9. 批量配置SSH互信脚本

    在大规模自动化部署时我们常常需要配置好服务器的SSH互信,以便自动化脚本可以免密登录远程服务器,常规的手动配置SSH互信步骤如下: 使用ssh-keygen生成本地ssh key(mha01),生成的 ...

随机推荐

  1. [bug] java.sql.SQLException: Unknown initial character set index '255' received from server. Initial cl...

    参考 https://www.jianshu.com/p/d86de6463cbd

  2. 马哥Linux--elasticsearch

    ELK stack: Lucene: 文档:document 包含了一个或多个域的容器 field:value 域: 有很多选项 索引选项,存储选项,域向量使用选项 索引选项用于通过倒排索引来控制文本 ...

  3. Redis 快速集群环境搭建

    环境 Linux :centos 7 redis:redis-5.0.9 Redis 集群环境搭建步骤 早期 redis 版本集群环境搭建需要安装 ruby 运行环境,搭建步骤比较繁琐: redis ...

  4. 图解CSS布局(一)- Grid布局

    图解CSS布局(一)- Grid布局 先上图 简介 Grid 布局是将容器划分成"行"和"列",产生单元格,然后指定"项目所在"的单元格,可 ...

  5. Ubuntu 16.04安装PyCharm

    PyCharm一个是Python集成开发环境,它既提供收费的专业版,也提供免费的社区版本.PyCharm带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试.语法高亮.Proj ...

  6. AtCoder Regular Contest 119 C - ARC Wrecker 2(同余定理+思维)

    Problem Statement There are NN buildings along the AtCoder Street, numbered 11 through NN from west ...

  7. Jmeter 录制 https协议是出现“您访问的不是安全链接”提示时

    解决方法参考: https://blog.csdn.net/test_leader/article/details/112274549

  8. ISP算法高水平分析(下)

    ISP算法高水平分析(下)  十.LSC(Lens Shade Correction)------镜头阴影矫正 Lens Shading指画面四角由于入射光线不足形成的暗角,同时,由于不同频率的光折射 ...

  9. Vitis-AI集成

    Vitis-AI集成 Vitis-AI是Xilinx的开发堆栈,用于在Xilinx平台(包括边端设备和Alveo卡)上进行硬件加速的AI推理.它由优化的IP,工具,库,模型和示例设计组成.设计时考虑到 ...

  10. TensorFlow中的语义分割套件

    TensorFlow中的语义分割套件 描述 该存储库用作语义细分套件.目标是轻松实现,训练和测试新的语义细分模型!完成以下内容: 训练和测试方式 资料扩充 几种最先进的模型.轻松随插即用 能够使用任何 ...