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. [c++] 模板、迭代器、泛型

    模板 函数模板:重载的进一步抽象,只需定义一个函数体即可用于所有类型 在C++中,数据的类型也可以通过参数来传递,在函数定义时可以不指明具体的数据类型,当发生函数调用时,编译器可以根据传入的实参自动推 ...

  2. 【转载】CentOS下查看电脑硬件设备属性命令

    CentOS下查看电脑硬件设备属性命令2018年09月13日 17:48:31 乔烨 阅读数 510如何在linux下查看电脑硬件设备属性 # uname -a # 查看内核/操作系统/CPU信息 # ...

  3. tuple必须加上逗号

    tuple支持  空 元组 不加逗号 >>> tup4 = () tuple非空的元组必须加上逗号>>> tup4 = (55,)>>> tup4 ...

  4. Zabbix 常用术语

    Zabbix 常用术语 1.主机(host) 一台你想监控的网络设备,用IP或域名表示 2.主机组(host group) 主机的逻辑组;它包含主机和模板.-个主机组里的主机和模板之间并没有任何直接的 ...

  5. Linux服务之nginx服务篇二(搭建)

    一.简易搭建安装步骤 0.检查环境 1.配置yum源 使用yum list nginx 检查yum源中是否有nginx安装包 #官方网络源需要安装epel-* #或使用251的adv源(老师的yum源 ...

  6. 3.2-3 tac、more

    3.2 tac命令 是cat的反向拼写,因此命令的功能为反向显示文件内容.cat命令是从第一行开始读取文本输出的,而tac则是从最后一行开始读取文本并进行反向输出,需要注意的是,2个命令都是以一行文本 ...

  7. Spring Cloud Alibaba系列之分布式服务组件Dubbo

    本博客的例子代码可以在github找到下载链接:代码下载 SpringBoot.SpringCloud Alibaba系列博客专栏:链接 1.分布式理论 1.1.分布式基本定义 <分布式系统原理 ...

  8. git&nodejs安装教程

    git https://www.cnblogs.com/ximiaomiao/p/7140456.html nodejs https://jingyan.baidu.com/article/e7505 ...

  9. tomcat---starup.bat点击窗口自动关闭

  10. GO语言的JSON01---序列化

    package main import ( "encoding/json" "fmt" ) /* 定义待序列化结构体 属性一定要可见,否则json包无法访问 * ...