这篇主要是介绍如何批量登陆远程主机和配置,这个过程中是在没有部署并行处理工具或者集群管理工具的前进行的。
————————————首次登陆——————————————
首次登陆需要解决的问题就是:
1,信任远程主机公钥的问题,也就是key_word:yes/no?
2,然后就是远程主机的密码,key_word:password:
在自动化部署过程中,需要进行免交互和免密码登陆。
1,使用expect编写免交互登陆脚本(适用于telnet,ssh,ftp等),然后使用shell调用expect脚本进行批量处理
2,使用ssh-keygen -h创建本地公钥,然后把该公钥传到远程主机之后,就可以免密码登陆
因此,对于要实现首次登陆,并且把本地管理主机的公钥批量传输给远程主机,可以通过编写脚本来实现
————————————首次登陆,创建/root/.ssh——————————————
1,创建登陆单台远程主机的脚本:
ssh_login.exp,内容如下
该脚本主要是首次免交互登陆远程主机,然后创建/root/.ssh目录
2,创建批量登陆脚本 ssh_login_all.sh,内容如下:
3,运行脚本./ssh_login_all.sh,可以在远程主机列表创建/root/.ssh
—————————拷贝本地/root/.ssh/authorizd_keys到远程主机——————————
1,创建拷贝单个文件的脚本
scp_authorized_keys.exp,内容如下
2,创建批量拷贝文件的脚本
./scp_all.sh,内容如下
————————————————————验证登陆————————————————
拷贝完本地的authorized_keys到远程主机之后,本地主机就可以免密码登陆到远程主机了。
配置信任关系之后,同样可以在本地管理主机部署集群管理工具等,进行虚拟集群的集中管理。
例如安装pssh,c3等
————————————————远程主机的配置修改————————————————
根据这两篇博客的内容,到这里基本上可以无密码登陆远程主机了。基于此,则可以部署集群管理工具或者编写并行命令执行脚本,进行远程主机的配置统,或者统一修改
例如:
1. 根据不同主机的IP地址,修改主机名
2. 拷贝以下文件到远程主机:
/etc/hosts;/etc/selinux/config;/etc/ssh/sshd_config;/etc/ssh/ssh_config;/etc/pam.d/sshd;/etc/secutity/access.conf等
yum -y install pssh
pssh -i -h hostfile /etc/hosts
总结:
对于集群节点少于10个的点,其实可以手动配置。但是对于数量众多的集群,编写脚本能够带来很多方便。同时,正式环境的设备都有带外管理界面和管理维护网络,使用起来更加方便。