Tarena_linux_service day05 rsync 同步 cobbler 装机平台

关闭虚拟机classroom  虚拟机desktop  虚拟机server
############################################
使用新的教学环境
虚拟机A:服务端                                  
1.检测Yum仓库是否可用,先清空Yum的缓存
虚拟机B:客户端
1.检测Yum仓库是否可用,先清空Yum的缓存
利用真机进行远程管理:
1.进行远程管理
[root@room9pc01 ~]# ssh -X [email protected]
[email protected]'s password:
[root@svr7 ~]#
###############################################
总结:
   1.dhcp服务-->IP地址  next-server pxelinux.0
   2.tftp-->pxelinux.0
   3.pxelinux.0-->菜单文件
     4. 菜单文件-->vesamenu.c32 vmlinuz initrd.img ks文件
   5.ks文件-->url="http://192.168.4.7/rhel7"
#################################################
计算机开机启动项:匹配及停止
    1.硬盘   2.光驱设备  3.U盘   4.网络引导安装

##################################################
rsync同步操作
• 命令用法
– rsync [选项...] 源目录 目标目录
• 同步与复制的差异
– 复制:完全拷贝源到目标
– 同步:增量拷贝,只传输变化过的数据
• rsync操作选项
  – -n:测试同步过程,不做实际修改
  – --delete:删除目标文件夹内多余的文档
  – -a:归档模式,相当于-rlptgoD
  – -v:显示详细操作信息
  – -z:传输过程中启用压缩/解压
• 本地同步
– rsync [选项...] 本地目录1     本地目录2
– rsync [选项...] 本地目录1/    本地目录2
]# mkdir /todir
]# rsync -a  /boot   /todir/     #同步整个文件夹
]# rsync -a  /boot/  /todir/     #只同步目录下的数据
[root@svr7 ~]# mkdir   /nsd   /test
[root@svr7 ~]# cp  /etc/passwd   /nsd
[root@svr7 ~]# touch  /nsd/1.txt
[root@svr7 ~]# mkdir  /nsd/public
[root@svr7 ~]# ls  /nsd/
[root@svr7 ~]# rsync -avz /nsd  /test/  #同步目录本身
[root@svr7 ~]# ls  /test
[root@svr7 ~]# ls  /test/nsd
[root@svr7 ~]# rm -rf /test/*
[root@svr7 ~]# rsync -avz  /nsd/  /test/  #同步目录内容
[root@svr7 ~]# touch  /nsd/{3..10}.txt
[root@svr7 ~]# ls  /nsd/
[root@svr7 ~]# rsync -avz /nsd/  /test/
[root@svr7 ~]# ls  /test

删除目标目录多余的文档
[root@svr7 ~]# rm -rf /nsd/*.txt
[root@svr7 ~]# ls /nsd
[root@svr7 ~]# ls /test
[root@svr7 ~]# rsync -avz --delete /nsd/ /test/
[root@svr7 ~]# ls /nsd
[root@svr7 ~]# ls /test
 
rsync+SSH同步

与远程的 SSH目录保持同步
– 下行:rsync [...]  user@host:远程目录   本地目录
– 上行:rsync [...]  本地目录   user@host:远程目录
虚拟机A:
[root@svr7 /]# ls /opt
[root@svr7 /]# rsync -avz --delete /opt/  [email protected]:/opt/
虚拟机B:
[root@pc207 /]# ls /opt
虚拟机A:
[root@svr7 /]# touch /opt/haxi.txt
[root@svr7 /]# rsync -avz --delete /opt/  [email protected]:/opt/
虚拟机B:
[root@pc207 /]# ls /opt
##############################################
实时同步
虚拟机A:
一  生成 公钥 与 私钥   实现ssh无密码验证        
[root@svr7 /]# ssh-keygen      #一路回车
[root@svr7 /]# ls /root/.ssh/
id_rsa(私钥)   id_rsa.pub(公钥)
2.复制公钥到对方
[root@svr7 /]# ssh-copy-id [email protected]
# rsync -avz --delete /opt/  [email protected]:/opt/
虚拟机B:
[root@pc207 ~]# ls /root/.ssh/
authorized_keys

二  安装inotify-tools实现监控目录内容变化
步骤一:安装开发工具gcc  make
步骤二:tar解包
]# tar -xf  /tools/inotify-tools-3.13.tar.gz -C /test
]# ls  /test/inotify-tools-3.13/
步骤三: ./configure 配置
]# cd  /test/inotify-tools-3.13/
]# ./configure 
步骤四:make 编译,生成可执行的二进制程序文件
]# cd  /test/inotify-tools-3.13/
]# make
步骤五:make install 安装,将编译好的文件复制到安装目录
]# cd  /test/inotify-tools-3.13/
]# make  install
]# ls /usr/local/bin/inotifywait
/usr/local/bin/inotifywait
 
• 基本用法
– inotifywait [选项] 目标文件夹
• 常用命令选项
– -m,持续监控(捕获一个事件后不退出)
– -r,递归监控、包括子目录及文件
– -q,减少屏幕输出信息
– -e,指定监视的 modify、move、create、delete、
attrib 等事件类别
 
三 书写Shell脚本,实时同步
   
  for比较适合有次数的循环      
  while比较适合死循环 
    while  [ 条件 ]
   do
         重复执行的代码
   done

[root@svr7 /]# cat /root/rsync.sh
#!/bin/bash
while  inotifywait  -rqq  /opt/    #直接屏蔽输出消息
 do
  rsync -az --delete /opt/  [email protected]:/opt/
 done &
[root@svr7 /]# chmod +x /root/rsync.sh
[root@svr7 /]# /root/rsync.sh
[root@svr7 /]# pgrep -l rsync
[root@svr7 /]# killall  rsync.sh
#################################################
Cobbler装机平台,不同版本的多系统的安装
一  安装一个CentOS虚拟机 
真机:
[root@room9pc01 ~]# ls /iso/
CentOS-7-x86_64-DVD-1708.iso
虚拟机要求:
             1.硬盘大小50G
             2.网络类型private1
             3.软件包选择 "带GUI的服务器"
             4.分区选择 "自动分区"
             5.将CentOS放入光驱设备,搭建本地Yum仓库
             6.配置eth0的IP地址:192.168.4.120/24
             7.配置主机名:Cobbler.tedu.cn
  
###################################################
二、虚拟机设置 
   1 .设置防火墙为trusted
  # firewall-cmd  --set-default-zone=trusted
   2.当前及永久设置SELinux状态为permissive
 [root@Cobbler ~]# setenforce 0    #当前临时关闭
 [root@Cobbler ~]# getenforce
 [root@Cobbler ~]# vim /etc/selinux/config
  SELINUX=permissive
三、利用scp真机传递Cobbler.zip包到虚拟机192.168.4.120中
 # scp /root/桌面/Cobbler.zip   [email protected]:/root/
  
##################################################
重设root密码 
案例1:为虚拟机 server 重设管理密码
1)重启系统,进入 recovery 恢复模式(修复模式)
按e键,找到 linux16 行,末尾添加 rd.break console=tty0
按 ctrl + x 启动
2)以可写方式重新挂载 /sysroot,并切换到此环境
switch_root# mount  -o  remount,rw  /sysroot
switch_root# chroot  /sysroot   
sh-3.2#
3)将root用户的密码设置为 redhat
# echo  redhat  |  passwd  --stdin  root
4)重设SELinux安全标签(安全增强版Linux)
# touch  /.autorelabel    #让  SElinux  失忆
5)先后执行 exit、reboot 完成修复
# exit
# reboot
 

##################################################
四、搭建Cobbler装机平台
  Cobbler概述软件,管理dhcp、tftp、Web服务
    自由的导入镜像与ks应答文件
1.解压Cobbler.zip包
# unzip /root/Cobbler.zip -d /
# cd /Cobbler/
# ls
# unzip /Cobbler/cobbler.zip  -d  /opt/
# ls /opt/cobbler
#####################################################
五、安装cobbler主程序、工具包等
[root@cobbler /]# yum -y install /opt/cobbler/*.rpm
################################################################
cobbler网络装机部署
1.安装软件 cobbler cobbler-web dhcp tftp-server pykickstart httpd  tftp-server
 cobbler         #cobbler程序包
 cobbler-web     #cobbler的web服务包
 pykickstart     #cobbler检查kickstart语法错误
 httpd           #Apache web服务
 dhcp            #dhcp服务
 tftp-server     #tftp服务
 

2.配置cobbler
[root@cobbler /]# vim  /etc/cobbler/settings
  next_server:   192.168.4.120 #设置下一个服务器还为本机
 server:   192.168.4.120      #设置本机为cobbler服务器
 manage_dhcp:   1             #设置cobbler管理dhcp服务
 pxe_just_once:   1           #防止客户端重复安装操作系统
 开机启动: 匹配及停止 
     1.硬盘启动     2.光驱设备      3.U盘      4.网络引导 
3.配置cobbler的dhcp       
[root@svr7 /]# vim  /etc/cobbler/dhcp.template
  :%s  /旧/新/g      #全文替换
  :%s  /192.168.1/192.168.4/g    #全文替换
    5 次替换,共 4 行  

4 .绝对路径解压cobbler_boot.tar.gz    #众多的引导文件
# tar -tf /Cobbler/cobbler_boot.tar.gz #查看包里面内容
# tar -xPf /Cobbler/cobbler_boot.tar.gz  #绝对路径释放
# ls  /var/lib/cobbler/loaders/
5.启动相关服务
[root@svr7 /]# systemctl restart cobblerd
[root@svr7 /]# systemctl enable cobblerd
[root@svr7 /]# systemctl restart httpd
[root@svr7 /]# systemctl enable httpd
[root@svr7 /]# systemctl restart tftp
[root@svr7 /]# systemctl enable tftp
[root@svr7 /]# systemctl restart rsyncd   #同步服务
[root@svr7 /]# systemctl enable rsyncd
6.同步刷新cobbler配置
[root@svr7 /]# cobbler sync  
......
*** TASK COMPLETE ***

# firefox https://192.168.4.120/cobbler_web
    用户名:cobbler
    密码:cobbler
 
##########################################################################################################
cobbler应用
cobbler import --path=挂载点   --name=导入系统命名(随意起)
导入安装镜像数据
# mount /dev/cdrom  /dvd
# ls /dvd/
# cobbler import --path=/dvd  --name=CentOS7
cobbler导入的镜像放在:/var/www/cobbler/ks_mirror
[root@cobbler /]# cobbler  list    #查看有哪些系统
distros:
   CentOS7-x86_64        #安装客户端至少2G内存
profiles:
   CentOS7-x86_64
 
 
##############################################
删除
# cobbler list
# cobbler profile remove --name=CentOS7-x86_64  #删除菜单信息
# cobbler distro remove --name=CentOS7-x86_64  #删除镜像信息

###########################################
# umount /dvd/
# mount /dev/cdrom  /dvd   将光盘换成RHEL7
# ls /dvd/
  安装完成机器 默认root  密码  cobbler
############################################################################################################
自定义应答文件:开头注释行删除
[root@cobbler ~]# system-config-kickstart  #生成ks文件
必须默认kickstart文件存放位置: /var/lib/cobbler/kickstarts/
[root@cobbler ~]# cobbler list
修改kickstart文件:
[root@cobbler ~]# cobbler profile edit --name=CentOS7.4-A  --kickstart=/var/lib/cobbler/kickstarts/自定义.cfg
[root@cobbler ~]# cobbler profile report
[root@cobbler ~]# cobbler sync  #同步配置
############################################################################################################
 

  PATH变量: 提供命令程序搜寻路径
[root@svr7 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@svr7 ~]# vim /opt/hello.sh
 #!/bin/bash
  echo hahaxixi
[root@svr7 ~]# chmod +x /opt/hello.sh
[root@svr7 ~]# /opt/hello.sh
[root@svr7 ~]# hello.sh   #执行失败
[root@svr7 ~]# cp  /opt/hello.sh   /usr/bin[root@svr7 ~]# hello.sh   #执行成功
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

猜你喜欢

转载自www.cnblogs.com/mrmeng123/p/10004415.html