本文共 21821 字,大约阅读时间需要 72 分钟。
Services01(较杂乱的小点)
搭建环境
1.创建两台虚拟机2.将两台虚拟机,修改名字,一个取名A 一个取名B 设置虚拟机A 为eth0IP地址:192.168.4.7/24 永久的主机名:svr7.tedu.cn 设置虚拟机B 为eth0IP地址:192.168.4.207/24 永久的主机名:pc207.tedu.cn3.真机远程管理两台虚拟机4.Yum仓库的设置 真机搭建Web服务,共享光盘所有内容(开机自动挂载) 1.将所有的loop设备全部卸载 2.mount -a df -h #查看是否挂载成功 3.scp直接拷贝到配置文件(A->B)
Yum仓库
1)网络yum baseurl为网络服务(web,ftp,nfs等)2)本地yumbaseurl为本地镜像(iso光盘,iso9660开机自动挂载)3)自定义yum 1.具备非光盘的软件包将真机的数据传递给虚拟机Ascp /路径/源文件 root@IP地址 :/路径/scp /root/桌面/tools.tar.gz root@192.168.4.7:/root/ (密码验证,如果传了公钥可以免交互)2.虚拟机A上,tar解包到根目录下tar -xf /root/tools.tar.gz -C /ls /tools/other/3.建立仓库数据文件 createrepo /tools/other/ls /tools/other/repodata/4.虚拟机追加写入一个仓库 /tools/other 是一个仓库vim /etc/yum.repos.d/rhel7.repo [rhel7]name=rhel7baseurl=enabled=1gpgcheck=0[other] name=hahaxixi baseurl=file:///tools/other #指定本机为Yum仓库 enabled=1 gpgcheck=0 5.yum repolist 刷新仓库 6.几个测试软件 sl cmatrix oneko& #放入后台运行
目录结构
认识Linux的目录层次:– man hier常见一级目录的用途
主要用途/boot 存放系统引导必需的文件,包括内核、启动配置/bin、/sbin 存放各种命令程序/dev 存放硬盘、键盘、鼠标、光驱等各种设备文件/etc 存放Linux系统及各种程序的配置文件/root、/home/用户名 分别是管理员root、普通用户的默认家目录/var 存放日志文件、邮箱目录等经常变化的文件/proc 存放内存中的映射数据,不占用磁盘/tmp 存放系统运行过程中使用的一些临时文件权限的数值表示
权限的数值化– 基本权限:r = 4,w = 2,x = 1chmod 755 /nsd01– 附加权限:SUID = 4,SGID = 2,Sticky Bit = 1历史命令管理/调用曾经执行过的命令– history:查看历史命令列表– history -c:清空历史命令– !str:执行最近一次以str开头的历史命令调整历史命令的数量vim /etc/profileHISTSIZE=1000 //默认记录1000条!ls #执行最近一条历史命令以ls开头的统计目录的大小du -sh /boot/zip归档工具,跨平台的压缩工具命令格式: zip -r /路径/压缩包名 /路径/被压缩的源文件zip -r /root/test.zip /home/ /mnt/ /etc/passwd
命令格式: unzip /路径/压缩包名 -d /释放的路径
unzip /root/test.zip -d /opt软连接与硬连接,快捷方式制作快捷方式: ln -s /路径/源文件 /路径/快捷方式的名字 ln -s /etc/redhat-release /abc i节点: 编号标识硬盘的一块存储区域ln,创建软连接 – 软连接 --> 原始文档 --> i节点 --> 文档数据 – ln -s 原始文件或目录 软连接文件 若原始文件或目录被删除,连接文件将失效 软连接可存放在不同分区/文件系统ln,创建硬连接 – 硬连接 --> i节点 --> 文档数据 – ln 原始文件 硬连接文件 若原始文件被删除,连接文件仍可用 硬连接与原始文件必须在同一分区/文件系统 echo 123 > /opt/A cat /opt/A ln -s /opt/A /opt/B #软连接 ln /opt/A /opt/C #硬连接 ls -i /opt/ 查看i节点 rm -rf /opt/A #当删除源文件,只有硬连接可用 ls -i /opt/
wc 统计命令 (别名为wc -lcm 行 字节 字符)
wc -l : 只统计行数 请统计/etc/以 .conf结尾的文件有多少个(包含子目录) find /etc/ -name "*.conf" | wc -l
vim文本编辑器
光标跳转
Home 跳转到行首End 跳转到行尾1G 或 gg 跳转到文件的首行G 跳转到文件的末尾行12G 跳转到文件的第12行复制/粘贴/删除
复制 yy、#yy 复制光标处的一行、#行粘贴 p 粘贴到光标处之后x 或 Delete键 删除光标处的单个字符dd、#dd 删除光标处的一行、#行d^ 从光标处之前删除至行首d$ 从光标处删除到行尾C(大写) 从光标处删除到行尾,并且进入插入模式u 撤销上一次操作
查找/撤销/保存
/word 向后查找字符串“word”n、N 跳至后/前一个结果u 撤销最近的一次操作Ctrl + r 取消前一次撤销操作(反撤销)ZZ(大写) 保存修改并退出
末行模式操作
:r /etc/filesystems 读入其他文件内容
字符串替换
:s/root/admin 替换光标所在行第一个“root”:s/root/admin/g 替换光标所在行所有的“root”:1,10s/root/admin/g 替换第1-10行所有的“root”:%s/root/admin/g 替换文件内所有的“root
开关参数的控制
:set nu|nonu 显示/不显示行号:set ai|noai 启用/关闭自动缩进
补充: vim 可视模式 在命令模式下 按 ctrl+v 进入可视模式 可以选择列
按 大写的 I 进入插入模式,然后输入内容 按Esc退回到命令模式(批量注释)vim 默认配置文件 ~/.vimrc 初始化vim操作,每次使用vim命令首先执行的内容 set nu #开启行号set ai #启用自动缩进set tabstop=2 #一个tab键等于 两个空格systemctl控制服务的控制
开启服务 systemctl start 服务名 停止服务 systemctl stop 服务名 重起服务 systemctl restart 服务名 设置开机自起 systemctl enable 服务名 设置开机不自起 systemctl disable 服务名 查看当前是不是开机自起 systemctl is-enabled 服务名
模式的控制
纯文本字符模式 : multi-user.target 图形模式 : graphical.target
当前切换模式
#systemctl isolate graphical.target #切换到图形模式#systemctl isolate multi-user.target #切换到字符模式修改默认进入的模式
#systemctl get-default #查看默认进入的模式#systemctl set-default graphical.target #修改默认的模式#systemctl get-default #reboot #重起验证源码编译安装rpm包:rpm yum 简单 不灵活
利用gcc与make
源码包---------------------->可以执行的程序 ---------->运行安装
灵活,功能与安装位置 可以自由选择
源码包编译安装:
步骤1:安装gcc与make编译开发工具 gcc make步骤2:tar解包,释放源代码至指定目录 tar -xf /tools/inotify-tools-3.13.tar.gz -C /mnt/ ls /mnt/ cd /mnt/inotify-tools-3.13/步骤3: ./configure 配置,指定安装目录/功能模块等选项 作用1:检测系统是否安装gcc 作用2:功能与安装位置 可以自由选择 --prefix= 指定安装位置 cd /mnt/inotify-tools-3.13/ ./configure --prefix=/opt/myrpm常见报错:没有安装gccchecking for gcc... nochecking for cc... nochecking for cl.exe... no步骤4:make 编译,生成可执行的二进制程序文件步骤5:make install 安装,将编译好的文件复制到安装目录验证: ls /opt/ ls /opt/myrpm/ ls /opt/myrpm/bin/
Services02
DNS服务基础: 域名解析 只负责将域名解析ip地址DNS服务器的功能 – 正向解析:根据注册的域名查找其对应的IP地址 – 反向解析:根据IP地址查找对应的注册域名,不常用所有完整的域名都要以点结尾: www.qq.com. www.baidu.com. . 根域 一级域名: .cn .us .hk .tw .kr .com .net 二级域名: .com.cn .net.cn .org.cn .edu.cn ......三级域名: nb.com.cn dawai.com.cn haha.com.cn haxi.com.cnFull Qualified Domain Name,完全合格主机名(FQDN)
– 系统服务: named
– 默认端口: 53– 运行时的虚拟根环境:/var/named/chroot/(遇到***时会被困到这个目录下)主配置文件:/etc/named.conf #设置本机负责解析的域名 tedu.cn
地址库文件:/var/named/ #主机名与IP地址的对应记录搭建基本的DNS服务
解析tedu.cn服务端:虚拟机A1.安装一个可以提供域名解析的软件bind-chroot 提供虚拟根支持,牢笼政策bind 域名服务包2.修改主配置文件/etc/named.confoptions { directory "/var/named";}; #设置地址库文件路径zone "tedu.cn" IN { #设置负责解析的域名type master; #设置本机为主DNS服务器file "tedu.cn.zone"; #设置地址库文件名字};3.建立地址库文件/var/named/tedu.cn.zonecp -p /var/named/named.localhost /var/named/tedu.cn.zone -p:权限不变进行拷贝vim /var/named/tedu.cn.zone tedu.cn. NS svr7 #指定本区域DNS服务器 svr7 A 192.168.4.7 #指定DNS服务器的IP地址 www A 1.1.1.1 ftp A 2.2.2.24.重起服务客户端:虚拟机B验证DNS解析 #echo nameserver 192.168.4.7 > /etc/resolv.conf #nslookup www.tedu.cn #测试域名解析
搭建多区域的DNS
解析qq.com域名1.修改主配置文件(追加写入)zone "qq.com" IN { type master; file "qq.com.zone"; };2.建立地址库文件 /var/named/qq.com.zone(新建)qq.com. NS svr7 svr7 A 192.168.4.7 www A 30.30.30.30ftp A 4.4.4.4
特殊的解析记录
一、DNS的轮询 (简单的负载均衡)虚拟机A:vim /var/named/tedu.cn.zonetedu.cn. NS svr7svr7 A 192.168.4.7www A 192.168.4.10www A 192.168.4.20www A 192.168.4.30ftp A 2.2.2.2systemctl restart named虚拟机B:验证ping -c 1 www.tedu.cnping -c 1 www.tedu.cnping -c 1 www.tedu.cn二、泛域名解析虚拟机A:vim /var/named/tedu.cn.zone* A 10.20.30.40tedu.cn. A 50.60.70.80systemctl restart named虚拟机B:nslookup haha.tedu.cnnslookup xixi.tedu.cnnslookup tedu.cn三、有规律的泛域名解析 stu1.tedu.cn--------》192.168.10.1 stu2.tedu.cn--------》192.168.10.2 stu3.tedu.cn--------》192.168.10.3 ...... stu50.tedu.cn--------》192.168.10.50 $GENERATE 造数工具 虚拟机A: vim /var/named/tedu.cn.zone * A 10.20.30.40 tedu.cn. A 50.60.70.80 $GENERATE 1-50 stu$ A 192.168.10.$systemctl restart named虚拟机B: nslookup stu32.tedu.cn nslookup stu50.tedu.cn nslookup stu51.tedu.cn四、解析记录的别名虚拟机A: vim /var/named/tedu.cn.zone tts CNAME ftp systemctl restart named虚拟机B: nslookup tts.tedu.cn nslookup ftp.tedu.cn
DNS子域授权
向 父域的DNS虚拟机A 解析 子域的域名 可以得到 虚拟机B 的结果父域: www.tedu.cn 虚拟机A 子域: www.bj.tedu.cn 虚拟机B一、虚拟机B 搭建子域的DNS 1.bind-chroot bind 2.修改主配置文件/etc/named.conf options { directory "/var/named"; };zone "bj.tedu.cn" IN { type master; file "bj.tedu.cn.zone"; }; 3. 建立地址库文件/var/named/bj.tedu.cn.zone cp -p /var/named/named.localhost /var/named/bj.tedu.cn.zone vim /var/named/bj.tedu.cn.zone (追加写入,不要管关于主从dns的配置) bj.tedu.cn. NS pc207 pc207 A 192.168.4.207 www A 1.2.3.4 4.systemctl restart named #重起服务二、虚拟机A:父域 1.修改地址库文件/var/named/tedu.cn.zone tedu.cn. NS svr7 bj.tedu.cn. NS pc207 svr7 A 192.168.4.7 pc207 A 192.168.4.207 2.重起named服务测试验证 nslookup www.bj.tedu.cn 192.168.4.7 Server: 192.168.4.7 Address: 192.168.4.7#53 Non-authoritative answer: #非权威解答 Name: www.bj.tedu.cn Address: 1.2.3.4
DNS解析过程:
递归解析:指DNS服务器与其他DNS服务器交互,最终将解析结果带回来的过程 (客户端--》dns服务器为递归)迭代解析:指DNS服务器与其他DNS服务器交互,最终将告知下一个DNS服务 (dns服务器到根域查询为迭代)验证迭代查询dig命令,更专业的DNS测试工具 (host,nslookup总共三个dns查询命令)缓存DNS
作用:缓存解析结果,提高解析速度搭建方式:
1.全局转发,所有的DNS解析请求全部转发给公网DNS2.根域迭代,所有的DNS解析请求全部发给根域DNS服务器真机上实现缓存DNS服务器
bind bind-chrootcat /etc/resolv.conf 修改配置文件/etc/named.confoptions { directory "/var/named";forwarders { 172.40.1.10; }; #转发给172.40.1.10};(相当于把所有解析请求都转给真机的dns服务器,而真机搭的这个dns服务,只起到缓存真机所用的dns服务器的解析结果)真机作为服务端时,收到的客户端请求全都给真机作为客户端时的服务端dns而自己只做缓存记录供给自己的客户端做解析。systemctl restart named在虚拟机上解析nslookup www.qq.com 192.168.4.254nslookup www.360.com 192.168.4.254Services03
DNS分离解析
当收到客户机的DNS查询请求的时候– 能够区分客户机的来源地址– 为不同类别的客户机提供不同的解析结果(IP地址)– 根据客户端的不同,解析同一个域名,得到的解析结果不同– 目的:为客户端提供网络最近的服务器资源 (电信ip解析请求解析成电信服务器ip,联通ip解析请求解析成联通服务器ip) (成都的ip解析请求解析成成都本地最近服务器ip)环境及需求– 权威DNS:svr7.tedu.cn 192.168.4.7– 负责区域:sina.com– A记录分离解析 —— 以 www.sina.com 为例客户机来自 解析结果 192.168.4.207 --------》 192.168.4.100 其他地址 --------》 1.2.3.4
解析原则:
1.由上到下依次匹配, 匹配及停止2.使用view时,所有的客户端都必须在分类中3.所有的zone都必须在view中4.每一个view中的zone必须相同虚拟机A 1.bind-chroot bind 2.修改主配置文件/etc/named.conf options { directory "/var/named"; }; acl test { 192.168.4.207; }; acl地址列表 简化match-clients匹配 view "nsd" { match-clients { test; }; zone "sina.com" IN { type master; file "sina.com.nsd"; }; }; view "other" { match-clients { any; }; zone "sina.com" IN { type master; file "sina.com.other"; }; }; 3.建立sina.com.nsd、sina.com.other 地址库文件 , 写入不同的解析结果 sina.com.nsd 解析结果为 192.168.4.100 sina.com.other 解析结果为 1.2.3.4
补充: vim 可视模式 在命令模式下 按 ctrl+v 进入可视模式 可以选择列
按 大写的 I 进入插入模式,然后输入内容 按Esc退回到命令模式(批量注释)vim 默认配置文件 ~/.vimrc 初始化vim操作,每次使用vim命令首先执行的内容 set nu #开启行号set ai #启用自动缩进set tabstop=2 #一个tab键等于 两个空格DNS分离解析综合实验:
虚拟机C搭建Web服务器
1.安装httpd2.修改配置文件/etc/httpd/conf.d/nsd01.conf
#mkdir /var/www/qq /var/www/163#echo woshi Web1 QQ > /var/www/qq/index.html#echo woshi Web1 163 > /var/www/163/index.html#cat /etc/httpd/conf.d/nsd01.conf
<VirtualHost :80>ServerName www.qq.comDocumentRoot /var/www/qq</VirtualHost><VirtualHost :80>ServerName www.163.comDocumentRoot /var/www/163</VirtualHost>虚拟机D搭建Web服务器
1.安装httpd2.修改配置文件/etc/httpd/conf.d/nsd01.conf
#mkdir /var/www/qq /var/www/163#echo woshi Web2 QQ > /var/www/qq/index.html#echo woshi Web2 163 > /var/www/163/index.html#cat /etc/httpd/conf.d/nsd01.conf
<VirtualHost :80>ServerName www.qq.comDocumentRoot /var/www/qq</VirtualHost><VirtualHost :80>ServerName www.163.comDocumentRoot /var/www/163</VirtualHost>################################################
实现的效果192.168.4.7-> www.qq.com www.163.com---》Web1(10)
192.168.4.207-> www.qq.com www.163.com---》Web2(20)
在虚拟机A搭建DNS分离解析
view "nsd" { match-clients { 192.168.4.7; }; zone "qq.com" IN { type master;file "qq.com.nsd";}; zone "163.com" IN { type master;file "163.com.nsd";}; };view "other" {
match-clients { any; }; zone "qq.com" IN { type master;file "qq.com.other";}; zone "163.com" IN { type master;file "163.com.other";}; };指定DNS服务器
#echo nameserver 192.168.4.7 > /etc/resolv.conf
RAID磁盘管理
廉价冗余磁盘阵列– Redundant Arrays of Inexpensive Disks– 通过硬件/软件技术,将多个较小/低速的磁盘整合成一个大磁盘
– 阵列的价值:提升I/O效率、硬件级别的数据冗余
– 不同RAID级别的功能、特性各不相同RAID 0,条带模式
– 同一个文档分散存放在不同磁盘– 并行写入以提高效率,无容错功能– 至少由2块磁盘组成RAID 1,镜像模式
– 一个文档复制成多份,分别写入不同磁盘– 多份拷贝提高可靠性,效率无提升– 至少由2块磁盘组成RAID5,高性价比模式
– 相当于RAID0和RAID1的折中方案– 需要至少一块磁盘的容量来存放校验数据– 至少由3块磁盘组成RAID6,高性价比/可靠模式
– 相当于扩展的RAID5阵列,提供2份独立校验方案– 需要至少两块磁盘的容量来存放校验数据– 至少由4块磁盘组成RAID 0+1/RAID 1+0
– 整合RAID 0、RAID 1的优势– 并行存取提高效率、镜像写入提高可靠性– 至少由4块磁盘组成进程管理
程序:静态的代码,占用磁盘空间 进程:动态的代码,会占用 CPU 内存 进程的唯一标识:PID 父进程与子进程 树形结构 (某些程序需要干掉其父进程才能干掉他本身)
查看进程树
pstree — Processes Tree– 格式:pstree [选项] [PID或用户名]常用命令选项
– -a:显示完整的命令行– -p:列出对应PID编号systemd是所有进程的父进程
pstree #显示进程树pstree lisi #显示用户lisi的进程pstree -p lisi #显示进程PIDpstree -ap lisi #显示进程完整的信息ps aux 操作
– 列出正在运行的所有进程用户 进程ID %CPU %内存 虚拟内存 固定内存 终端 状态 起始时间 CPU时间 程序指令
ps -elf 操作
– 列出正在运行的所有进程 (可以查看其父进程)PPID:父进程的PID号进程动态排名
top 交互式工具– 格式:top [-d 刷新秒数] [-U 用户名]按 大写的P 按cpu降序
按 大写的M 按内存降序top -d 1 root 默认看当前用户ps aux | wc -l #统计进程数 ps -elf | wc -l #统计进程数
检索进程
pgrep — Process Grep– 用途:pgrep [选项]... 查询条件常用命令选项
– -l:输出进程名,而不仅仅是 PID– -U:检索指定用户的进程– -t:检索指定终端的进程– -x:精确匹配完整的进程名pgrep -l atdpgrep -l cronpgrep -lU lisipgrep -lU lisi | wc -lpgrep -lx atd控制进程sleep 900 & #正在运行放入后台jobs #查看后台进程信息sleep 800^Z #按Ctrl+z正在运行放入后台bg 2 #将后台编号为2的进程继续运行fg 1 #将后台编号为1的进程恢复到前台杀死进程– Ctrl+c 组合键,中断当前命令程序– kill [-9] PID... 、kill [-9] %后台任务编号– killall [-9] 进程名...– pkill 查找条件-9:强制杀– killall -9 -u 用户名 #杀死该用户开启的所有进程(强制 踢出 一个用户)日志管理日志的功能
系统和程序的“日记本”– 记录系统、程序运行中发生的各种事件– 通过查看日志,了解及排除故障常见的日志文件/var/log/messages 记录内核消息、各种服务的公共消息
/var/log/dmesg 记录系统启动过程的各种消息/var/log/cron 记录与cron计划任务相关的消息/var/log/maillog 记录邮件收发相关的消息/var/log/secure 记录与访问限制相关的安全消息日志分析tailf : 实时跟踪日志信息
– awk、sed等格式化过滤工具
users、who、w 命令– 查看已登录的用户信息,详细度不同users、who、w 命令– 查看已登录的用户信息,详细度不同last、lastb 命令
– 查看最近登录成功/失败的用户信息[root@svr7 /]# users[root@svr7 /]# who[root@svr7 /]# w[root@svr7 /]# last -2 #最近登陆成功2条记录[root@svr7 /]# lastb -2 #最近登陆失败2条记录 Linux内核定义的事件紧急程度– 分为 0~7 共8种优先级别– 其数值越小,表示对应事件越紧急/重要0 EMERG (紧急) 会导致主机系统不可用的情况
1 ALERT (警告) 必须马上采取措施解决的问题2 CRIT (严重) 比较严重的情况3 ERR (错误) 运行出现错误4 WARNING (提醒) 可能会影响系统功能的事件5 NOTICE (注意) 不会影响系统但值得注意6 INFO (信息) 一般信息7 DEBUG (调试) 程序或系统调试信息等使用journalctl工具 (日报管理)
提取由 systemd-journal 服务搜集的日志– 主要包括内核/系统日志、服务日志常见用法
– journalctl | grep 关键词– journalctl -u 服务名 [-p 优先级]– journalctl -n 消息条数– journalctl --since="yyyy-mm-dd HH:MM:SS" --until="yyyy-mm-dd HH:MM:SS" (从什么时间到什么时间的日志,排错使用)Services04
DHCP概述及原理 (批量装机时我们才会搭 一般不搭)
Dynamic Host Configuration Protocol– 动态主机配置协议,由 IETF(Internet 网络工程师任务小组)组织制定,用来简化主机地址分配管理主要分配以下入网参数
– IP地址/子网掩码/广播地址– 默认网关地址、DNS服务器地址DHCP地址分配的四次会话,通过广播的方式,先到先得
一个网络中不能有多台DHCP(可能会因为相互干扰导致ip混乱,今天我先得到A服务分的ip明天先得到B服务的ip)1.dhcp2.vim /etc/dhcp/dhcpd.conf末行模式 :r /usr/share/doc/dhcp*/dhcpd.conf.examplesubnet 192.168.4.0 netmask 255.255.255.0 { 分配网段及子网range 192.168.4.100 192.168.4.200; ip范围option domain-name-servers 192.168.4.7; dns服务器option routers 192.168.4.254; 网关default-lease-time 600; 默认租约时间max-lease-time 7200;} 最后没有分号3.systemctl restart dhcpd
什么是PXE网络
PXE,Pre-boot eXecution Environment
– 预启动执行环境,在操作系统之前运行– 可用于远程安装工作模式
– PXE client 集成在网卡的启动芯片中– 当计算机引导时,从网卡芯片中把PXE client调入内存执行,获取PXE server配置、显示菜单,根据用户选择将远程引导程序下载到本机运行网络装机服务端需要哪些服务组件?
– DHCP服务,分配IP地址、定位引导程序– TFTP服务,提供引导程序下载– HTTP服务,提供yum安装源网络装机服务器虚拟机A一、dhcp配置,指定next-server下一个服务器dhcpvim /etc/dhcp/dhcpd.conf next-server 192.168.4.7; filename "pxelinux.0"; #指定网卡引导文件名 systemctl restart dhcpd
二、搭建tftp服务,传输引导文件
tftp:简单的文件传输协议 端口:69默认共享路径:/var/lib/tftpboottftp-serversystemctl restart tftpsystemctl enable tftpyum provides */pxelinux.0#查询仓库哪个软件生成pxelinux.0yum -y install syslinuxrpm -ql syslinux #查看软件包安装清单 rpm -ql syslinux | grep pxelinux.0 cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ mkdir /var/lib/tftpboot/pxelinux.cfg 部署菜单文件 mount /dev/cdrom /mnt/ 挂载光盘寻找硬件模板 cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default 拷贝菜单文件模板 cp /mnt/isolinux/vesamenu.c32 /mnt/isolinux/vmlinuz /mnt/isolinux/initrd.img /mnt/isolinux/splash.png /var/lib/tftpboot/ls /var/lib/tftpboot/ initrd.img(启动驱动程序 ) vmlinuz(启动内核) pxelinux.0(syslinux程序中复制而来) pxelinux.cfg(目录/default相当于系统引导程序从isolinux.cdg中来) splash.png(背景图片) vesamenu.c32(图形模块) vim /var/lib/tftpboot/pxelinux.cfg/default 修改菜单 default vesamenu.c32 #加载图形的模块 timeout 60 #读秒的时间 ....... menu background splash.png #指定背景图片 menu title PXE Server NSD1803 #指定标题 ....... label linux menu label Install RHEL7 #显示选项内容 kernel vmlinuz #指定启动内核 append initrd=initrd.img #指定启动驱动程序 至此已经集齐6大硬件,所有硬件引导结束)
接下来是软件!!!所以要搭WEB 来共享软件包。
总结:dhcp----》IP、next-server、pxelinux.0tftp----》pxelinux.0pxelinux.0----》defaultdefault----》vesamenu.c32 、vmlinuz、initrd.img简单测试: 新建一台虚拟机 选择 PXE网络引导 安装
yum -y install httpdmkdir /var/www/html/rhel7 mount /dev/cdrom /var/www/html/rhel7 systemctl restart httpd systemctl enable httpd firefox 192.168.4.2/rhel7 (软件环境有了)
配置自动安装的选项 (无人值守)
yum -y install system-config-kickstart.noarch (无人值守图像配置软件) system-config-kickstart (检查发现软件包不可用) vim /etc/yum.repos.d/BB.repo (bug 源标示要改为development)
选择需要自动安装的选项(大概记住)
cp /root/ks.cfg /var/www/html/ (配置自动安装软件 所以是放在和http服务中) vim /var/lib/tftpboot/pxelinux.cfg/default (修改引导程序文件,让其自动安装软件包) label linux menu label Install RHEL7 menu default #读秒之后默认的选择 kernel vmlinuz append initrd=initrd.img ks=http://192.168.4.7/ks.cfg
tips!: 比较坑的是什么 是这个图形配置文件生成ks.cfg 容易出现问题,和选择的不一样!!!
所以,每次图形界面配完了以后检查一下这个ks.cfg这个配置文件有没有问题!!!!参照如下配置文件!!!!Services05
cobbler装机
优势 :自动安装服务,搭好以后只需导入镜像文件即可, 对于安装多操作系统的需求来讲更方便。基本环境:centos系统作为服务器主机系统 selinux disabled
firewall trsuted
cobbler.zip 解压两次 发现RPM包 一并装上!yum -y install /Cobbler/cobbler/*.rpm #装包 (同时装多个包!!!!)vim /etc/cobbler/settings #修改主配置文件vim /etc/cobbler/dhcp.template #修改dhcp配置文件tar -tf /Cobbler/cobbler_boot.tar.gz tar xPf /Cobbler/cobbler_boot.tar.gz #保持绝对路径解压!!!ls /var/lib/cobbler/loaders/ #cobbler服务引导文件默认存放路径COPYING.elilo COPYING.yaboot grub-x86_64.efi menu.c32 README
COPYING.syslinux
elilo-ia64.efi grub-x86.efi pxelinux.0 yaboot #配置硬件启动所需文件systemctl restart cobblerd.service systemctl enable cobblerd.service systemctl restart httpdsystemctl enable httpdsystemctl restart tftpsystemctl enable tftpsystemctl restart rsyncdsystemctl enable rsyncd #启动各种服务 配置软件!!cobbler sync #刷新cobbler服务systemctl restart dhcpd # 最后才能启dhcp 要刷一次才能使配置生效 firefox https://192.168.4.180/cobbler_web 测试web #验证web
用户cobbler 密码cobbler 进入web的图形配置界面
cobbler import --path=挂载点 --name=导入系统命名(随意起)--arch=x86_64 版本架构导入安装镜像数据mount /dev/cdrom /dvd (挂载读取第一个镜像)cobbler import --path=/dvd --name=CentOS7
--arch=x86_64 (写入第一个镜像)
mount /iso/rhel-server-7.4-x86_64-dvd.iso /rhel7/(换个镜像挂载)cobbler import --path=/rhel7 --name=RedHat7 --arch=x86_64 (写入第二个镜像) 可以装机了。 cobbler list #查看有哪些系统cobbler profile report #查看cobbler导入信息 killall -9 dnsmasq #虚拟化服务会干扰DHCP服务
cobbler导入的镜像放在:/var/www/cobbler/ks_mirror
root的默认密码为cobbler
修改默认cobbler密码:openssl passwd -1 -salt 'random-phrase-here' '111' 111是自己想要修改的密码!!!vim /etc/cobbler/settings
default_password_crypted: "$1$mF86/UHC$WvcIcX2t6crBz2onWxyac." 替换为刚刚生产的MD5只需要重启cobblerd 这个服务就行了。(重启之后看一下http中的ks文件中的rootpw 这行发生了改变没有就能验证了,这 个发生了个改变就证明密码已经设置好了!!!)tips:
cobbler服务的默认引导文件还是 /var/lib/tftpboot/pxelinux.cfg/default(和pxe一样)ipappend 2LABEL rhel6-x86_64
kernel /images/rhel6-x86_64/vmlinuzMENU LABEL rhel6-x86_64append initrd=/images/rhel6-x86_64/initrd.img ksdevice=bootif lang= kssendmac text ks=http://192.168.4.100/cblr/svc/op/ks/profile/rhel6-x86_64 ks文件在这里可以看到ipappend 2
MENU end
firefox这里的访问路径是作了很多此跳转之后的路径
默认的ks文件是在这里!!!
上面的defualt引导文件也有写ks的位置在这里,这个文件是会随着主配置文件变化的。因为里面的rootpw都是用的 $ default_password_crypted:调用的这个变量的值!设置网页跳转配置文件/etc/httpd/conf.d/cobbler.conf修改密码出错:
这个ks文件的位置,目前还找不到在哪里 但是它这个ks文件中下面这行出现了问题!!! rootpw 后面给了两个参数!!!因为中间有空格!!!#Root password
rootpw --iscrypted $1 $random-p$WbZ3JxhRzCS/1Ne4S9g4Z.装机时报错:the following error was found while parsing the kickstart configuration file:
the following problem occurred on line 38 of the kickstart file:
A single argument is expected for the rootpw command !!!
这个报错 看得懂英语的话就太简单了:
意思是读ks文件的时候出错了! 出了什么错:一个单独的参数被期望在rootpw命令之后!!意思就是rootpw 后面只能给一个参数 !!
再看上面的ks文件中 rootpw 后面的参数出现了空格 所以他会认为是两个参数!!!
这么简单都能牌一上午??????排错: 改掉或者重写一个密码到setings这个主配置文件中,
重启cobblerd服务。firefox 验证以下rootpw这行是否更新了即可!!!rsync同步服务
同步与复制的差异– 复制:完全拷贝源到目标– 同步:增量拷贝,只传输变化过的数据命令用法
– rsync [选项...] 源目录/ 目标目录– rsync [选项...] 源目录 目标目录– -n:测试同步过程,不做实际修改
– --delete:删除目标文件夹内多余的文档– -a:归档模式,相当于-rlptgoD– -v:显示详细操作信息– -z:传输过程中启用压缩/解压本地目录的同步
rsync -avz /dir1/ /stu01/
rsync+SSH远程同步
rsync /本地路径/源文件/ 用户名@对方的IP地址:/目标路径
rsync 用户名@对方的IP地址:/目标路径 /本地路径/路径/虚拟机A:#rm -rf /opt/*#touch /opt/{1..5}.txt#ls /opt/#rsync --delete -avz /opt/ root@192.168.4.207:/opt/虚拟机B:
#ls /opt/虚拟机A:
#touch /opt/6.txt#rsync --delete -avz /opt/ root@192.168.4.207:/opt/虚拟机B:
#ls /opt/实时的远程同步
一、取消用户名密码的验证
1.虚拟机A 生成公钥 私钥ssh-keygen #一路回车 ls /root/.ssh/ #查看公钥 私钥
2.虚拟机A 传递公钥 到对方服务器
ssh-copy-id root@192.168.4.207
3.虚拟机A 验证
ssh root@192.168.4.207 (无需密码)二、源码包编译安装 inotify-tools(监控目录内容变化)
1.真机上传到虚拟机A
#scp /var/ftp/NSD1803/SERVICES/Day01/tools.tar.gz root@192.168.4.7:/2.安装gcc make
3.解包tar#tar -xf /tools/inotify-tools-3.13.tar.gz -C /#cd /inotify-tools-3.13/4.配置./configure
[root@svr7 inotify-tools-3.13]# ./configure 5.编译与安装[root@svr7 inotify-tools-3.13]# make[root@svr7 inotify-tools-3.13]# make install[root@svr7 /]# inotifywait #具备命令程序No files specified to watch!6.程序的使用常用命令选项– -m,持续监控(捕获一个事件后不退出)– -r,递归监控、包括子目录及文件– -q,减少屏幕输出信息– -e,指定监视的 modify、move、create、delete、attrib 等事件类别[root@svr7 /]# inotifywait -mrq /opt/
三、书写rsync脚本
死循环脚本 while [条件判断] do 循环的语句 done vim /root/rsync.sh (用变量代替要更好些) #!/bin/bash while inotifywait -rqq /opt/ do rsync --delete -az /opt/ root@192.168.4.207:/opt done & chmod +x /root/rsync.sh
转载于:https://blog.51cto.com/13659481/2110243