自动化配置共享目录
nfs:共享某个目录,共享给哪些客户端,rw(读写)——rwx(给目录权限设置),ro(只读)
写脚本
1、装包
可以调用仓库之前装包的脚本
(1)用户输入共享的目录名字
(2)用户输入客户端的网络和IP地址
(3)用户输入共享的权限
(4)判断前三个任意一个为空,就输出信息,并返回状态码为1
#1
如果安装成功,配置config exports,即将用户输入的信息追(注意可以设置)加到/etc/exports中
如果安装失败,输出echo,并且返回状态码为1;如果装过了返回的是0
2、创建目录并且设置权限
(1)可以写if判断目录是否存在,也可以写-p不判断,就创建(目录存在,就创建,不存在就一层一层创建);
(2)给其他人设置权限;或者写一个if判断mode==ro,就给共享的目录设置为755,如果mode==rw,就给共享的目录文件设置为757
3、重启服务
(1)重启并追加到黑洞中
!(3)nfs中的特殊重启
(2)if判断返回的状态码是0,就重启成功并且切出IP;否则输出重启失败;
查看监管的IP
切出IP
执行并检查是否成功
2、自动化配置ssh免密登录
客户端与服务端建立tcp连接之后,服务器将公钥发给客户端,客户端将账号名和密码发给服务器,服务器进行密码认证;
免密:客户端需要一对公私钥,将公钥信息传给服务器需要登录的目标账号的家目录下的ssh/authorized_key;或者使用ssh-copy-id,即客户端使用ssh-keygen -t rsa(交互式命令)生成——需要查一下用法,再使用ssh-copy-id传送。
1、客户端生成公私钥
man ssh-keygen
私钥没有后缀,。pub是公钥的后缀
(1)用户输入需要免密登陆的账号(id);
(2)用户输入数量
(3)if判断 -f判断文件不存在,就创建文件并且定向到黑洞中;
(4)拷贝
(5)远程连接默认家目录,远程连接直接使用命令
(6)问题:如果没有免密登录成功,会一直输出等待,所以需要使用if判断一下是否为0,为0,则输出免密配置成功
传公私钥的时候最好不要覆盖,因为覆盖了之后,好不容易传上去的公私钥被覆盖了之后,生成另外一台服务器的公私钥,就不能登录之前的服务器了;除非登录的时候重新指定登录的私钥是之前那个,所以最好不覆盖,就用一对公私钥,或者写个脚本判断生成公私钥的目录是否存在,存爱则不创建,再或者echo n传到创建。
3、自动化配置web服务的http网站和hettps网站
(1)装包
(2)配置文件
(3)保证IP和目录都存在,可以访问index.html文件
(4)重启服务——提前写好拷贝,进去更方便
(1)用户输入IP地址(这个IP地址需要添加一下,以下是自动化添加脚本的shell)
或者:使用expot才可以使用变量
注意:如果用了systemctl restart nginx,就不要单独使用nginx,否则开启的进程比较多
检查一下
(1)if条件判断装包成功之后才执行以下操作——写配置文件的内容;否则输出错误提示信息;
(2)
提前写好——位变量
配置https
复制
查看私钥追加到文件中
根据私钥生成公钥
-subj:非交互生成
补充:
web服务器:nginx,httpd(apache),http,https web网站
集群:一群服务器,如web集群,mysql集群
假如要使用web集群:有四台web服务器
当有客户端在这4台服务器上访问域名www.test.com的时候,都会出现test的界面
dns自带负载均衡的作用(比如第一次访问解析到web1,第二次访问解析到web2……),一个域名对应多个ip,缺点就是效率低,所以用其他负载均衡的软件(nginx 、lvs 、haproxy)——专门做负载均衡的软件,
比如:客户端要访问wwwtest.com,需要解析出IP192.168.168.200,会通过上述的负载均衡软件
(rr轮询——每台服务器都访问;wrr权重轮询等算法)配置上述IP地址,并转发到每台web服务器
上述是概念,lvs有四个模式
NAT:数据包从客户端到lvs,lvs转发到web服务器,服务器发给lvs,再由lvs转发出去,这个没有必要,所以要用隧道回的时候直接给客户端,但是直接发,客户端不收——因为需要200的地址,需要DR配置web服务器不广播,不告诉其他客户端他的地址)
fullnat
DR:
隧道
搭建环境
三台web服务器的网卡连接到交换机上,客户端的lvs连接到交换机,交换机上连接一台路由器,连接互联网;客户端的公网连接接路由器,连路由器上连接客户端pc;