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. centos7安装powershell和powercli

    poershell github https://github.com/PowerShell/PowerShell/releases 本次采用github下载对应的rpm进行安装 windows下安装 ...

  2. [bug] mysql 忘记密码

    参考 https://www.cnblogs.com/black-fact/p/11613361.html

  3. keepalived绑定单播地址、非抢占模式及LVS的TCP模式的高可用

    背景:keepalived默认是组播地址进行播放,且默认地址是224.0.0.18,如果配置多个keepalived主机,会导致虚拟IP地址存在冲突问题,这种问题怎么解决呢? 解决办法:就是将keep ...

  4. 云计算OpenStack---创建实例(11)

    创建实例时,需要先创建网络及实例类型等其它配置: 一.创建虚拟网络(Self-service network) 网络概述图: 网络连接图: 1.创建self-service网络 (1)加载系统变量: ...

  5. exit()和_exit()的区别

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/HAHAandHEHE/article/de ...

  6. GPIO模式用法

    浮空,顾名思义就是浮在半空,输入直接与寄存器挂钩: 开漏,输出0的时候 PMOS管导通IO输出Vdd,输出1的时候 NMOS管导通IO输出Vss(Cmos场效应管): 推挽,输出时候电平确定,同样使用 ...

  7. python 如何让俩个对象相等及如何让俩个对象具有相同的id值

  8. jackson学习+CVE-2019-12086漏洞分析

    jackson和fastjson差不多,都是用来更方便的处理json 国人用fastjson,老外用jackson/gson比较多 环境搭建: pom.xml: <dependency> ...

  9. Docker环境下运行python+selenium+chrome

    Docker环境下运行python+selenium+chrome docker运行时占用的资源非常少,而且能将环境进行有效的隔离,可以快速的进行部署,因此可以将docker与selenium结合实现 ...

  10. 端到端TVM编译器(上)

    端到端TVM编译器(上) 摘要 将机器学习引入到各种各样的硬件设备中.AI框架依赖于特定于供应商的算子库,针对窄范围的服务器级gpu进行优化.将工作负载部署到新平台,例如手机.嵌入式设备和加速器(例如 ...