运维必会硬核实战技能分享(一)

作为一名运维人员,必须要会实战,光有理论肯定是行不通的。

这里分享给大家运维当中必须要掌握的实战技能。

一、配置本地源和网络源

①配置本地源

打开虚拟机后点击右下角光盘图标:

然后选择“浏览”,添加你安装的系统的镜像文件,比如你安装系统使用的是“CentOS-7-x86_64-DVD-1804.iso”,那么你就选择这个镜像文件“CentOS-7-x86_64-DVD-1804.iso”

然后选择“打开”——“确定”

接下来回到虚拟机系统内,进入目录:yum.repos.d内

cd /etc/yum.repos.d/

创建任意以repo为后缀的文件

vim local_yum.repo

然后添加以下内容:

[local_yum]
name=local_yum
baseurl=flie:///mnt/cdrom
enabled=1
gpgcheck=0

解析:[local_yum]和name=local_yum皆为标识,可随意定义;baseurl=flie:///mnt/cdrom的意思是使用本地源,地址路径为/mnt/cdrom;enabled=1表示启用源;gpgcheck=0表示不开启校验。

保存退出后,创建/mnt/cdrom目录(如果存在则不创建)

mkdir -p /mnt/cdrom

接下来使用挂载命令进行光盘挂载:

mount /dev/cdrom /mnt/cdrom

此处的/dev/cdrom即表示光盘

若出现下面的这行提示则说明挂载成功

[root@pc-01 dev]# mount /dev/cdrom /mnt/cdrom
mount: /dev/sr0 is write-protected, mounting read-only

接下来设置开机自动挂载

vim /etc/fstab

打开文件后添加一行:

然后保存退出。

接下来使用命令创建缓存

[root@pc-01 dev]# yum makecache

至此yum本地源配置完成,可使用yum命令安装所需服务了。

②配置网络源

先搜索“163yun源”,然后进入“centos镜像使用帮助”这个网站;

下载对应版本的repo文件,此处我使用的是centos7系统,所以选择centos7

下载完成之后上传到/etc/yum.repos.d目录下

进入/etc/yum.repos.d/目录:

cd /etc/yum.repos.d/

此处我使用的工具为xshell,因此我使用sz命令上传(需安装lrzsz这个工具,命令:yum install  lrzsz -y)

上传成功后可以看到/etc/yum.repos.d目录下多了CentOS7-Base-163.repo文件

然后执行以下两条命令即可(注意:除非是刚装系统的设备,否则尽量避免使用yum clean all,因为会出现各种不可控问题,切记)

yum clean all

yum makecache

③补充:针对局域网内多台设备不能联网的情况配置http源供其余设备使用(生产环境下经常碰到)

这里选择已配置本地源的96作服务器,选择没有外网的97作客户端。

先在96上安装httpd服务:yum install httpd httpd-devel -y

安装成功后进入httpd服务的web发布目录:cd /var/www/html/

创建名为centos的文件夹,然后把挂载到/mnt/cdrom/Packages/下的所有rpm复制到/var/www/html/centos/目录下:

mkdir centos

cp -R /mnt/cdrom/Packages/* /var/www/html/centos/

接下来使用命令:yum install createrepo* -y      创建本地源

然后使用命令生成rpm创建的本地源配置文件:createrepo centos/

进入repodata目录,命令:cd /var/www/html/centos/repodata/

使用ll命令,如果有以下文件则表示成功

重启httpd服务:systemctl restart httpd

接下来进入客户端97,在目录/etc/yum.repos.d/下创建名为http.repo的源配置文件

cd /etc/yum.repos.d/

vim http.repo

输入以下内容:

[http]
name=http
baseurl=http://192.168.1.196/centos
enabled=1
gpgcheck=0

然后创建yumcache,命令:yum makecache

注意,如果出现以下错误,请关闭selinux以及防火墙,关闭方法见我的博文:

Nginx安装后,同一网络环境下访问不了解决方式_nginx局域网无法访问_wxm9077的博客-CSDN博客

如果没有错误就安装成功了

接下来,同步yum源到本地(96上操作)

yum install yum-utils createrepo -y

reposync -r base -p /var/www/html/centos

特别重要:

如果配置了yum源使用不了,请这样操作:

进入/etc/yum.repos.d

把如图所示的repo文件都改名

在repo后面添加“.bak”即可

然后使用:yum clean all   清空所有的yum配置

接着,yum repolist all 查看自己配置的源是否存在,此处可以看到我配置的“centos-local”源,如果没有出现自己配置的源,则返回上一步继续把可疑的repo文件改名

然后使用命令建立缓存:yum makecache

接下来就可以自己的源进行安装了。

二、硬盘分区、增加Swap内存

一般情况下对硬盘的操作分为三步:分区、格式化、挂载

①硬盘分区

查看分区信息:fdisk -l

分区命令:fdisk /dev/sdb

/dev/sdb是要进行分区的硬盘

②输入n新建分区  提示输入p或e  p代表的是创建主分区,e代表创建扩展分区

③输入p创建主分区,提示输入分区编号,1-4是主分区编号

④输入1,即创建的分区为/dev/sdb1,提示输入第一个起始分区

⑤直接回车默认第一个起始分区从2048开始,提示输入结束的扇区,每个扇区代表的是1kB,512字节,假如我们需要分配5G空间,则直接输入+5G即可

⑥输入p查看分区信息

⑦输入w保存设置的分区

⑧进行格式化

mkfs.ext4 /dev/sdb1  .ext4是把分区sdb1格式化为ext4文件格式

⑨进行挂载

mkdir -p /usr/sdb1

mount /dev/sdb1  /usr/sdb1

⑩查看挂载信息

df -h

(11)使挂载永久生效

vim /etc/fstab

添加一行:   /dev/sdb1 /usr/sdb1/ ext4 defaults 0 0

保存配置文件  然后重启设备进行检查看是否生效

结果:

说明我们已经永久性挂载了。

增加Swap内存

此处增加2G交换内存

先创建10G的扩展分区,名称为/dev/sdb2   ,p是主分区,e是扩展分区

继续输入n创建逻辑分区,并分配2G逻辑分区内存,l代表的是逻辑分区

输入p即可看到我们分配的分区信息

然后w保存

继续输入partprobe把信息同步到内核

输入ls -l /dev/sdb*   查看我们的分区信息

可以看到我们进行的分区都在里面了

进行格式化  mkswap /dev/sdb5

格式化后此分区就成为了一个Swap格式的2G分区了

接下来还要把这个Swap格式的2G分区挂载到Swap

swapon /dev/sdb5

然后使用free -m 看内存中的Swap是否已经增加

结果:可以看到Swap的大小已经从2G变为4G了

进行永久性保存

vim /etc/fstab  

添加一行: /dev/sdb5 swap swap defaults 0 0

保存后重启检查下,结果如下:已永久生效

注意,若是/etc/fstab 文件里面的信息写错了  在重启时会报错,此时不要着急,输入root密码,然后继续编辑/etc/fstab 

把正确的信息写上即可。

三、vsftpd服务搭建

首先安装vsftpd:yum install vsftpd -y

启动vsftpd服务:systemctl start vsftpd

设置开机自启:systemctl enable vsftpd

安装完成后配置文件存储于/etc/vsftpd目录:

使用命令:grep -v "#" vsftpd.conf 过滤出vsftpd.conf的配置信息,-v表示取反,对带有“#”的行取反,即只过滤没有"#"的行

vim vsftpd.conf

编辑内容如下:

anonymous_enable=YES     #启用匿名模式
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES   #配置改为YES
listen_ipv6=NO    #配置改为NO

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

下面分三种模式来配置
①匿名用户模式

在此模式下设置匿名用户的权限,需在配置文件加上以下三个参数

anon_upload_enable=YES     #允许匿名用户上传文件
anon_mkdir_write_enable=YES  #允许匿名用户创建目录
anon_other_write_enable=YES  #允许匿名用户其他写入权限

然后给ftp用户赋予权限

chown ftp:ftp -R /var/ftp/pub/

chmod +w -R /var/ftp/pub/

重启vsftpd服务:systemctl restart vsftpd

②系统用户模式

先创建一个测试用户

[root@pc-01 ~]#useradd ftp1
[root@pc-01 ~]# echo "123456"|passwd --stdin ftp1

直接重启vsftpd:systemctl restart vsftpd

用创建的用户进行登录验证:

③虚拟用户模式(推荐)

安装完成后进入vsftpd配置文件所在目录:cd /etc/vsftpd/

创建文件主要用来存储虚拟用户的账号信息:vim /etc/vsftpd/ftpusers.txt

输入账号及密码:

wxm1
123456
wxm2
123456
把ftpusers.txt文件进行加密存储在数据库

命令:db_load -T -t hash -f ftpusers.txt vsftpd_login.db

执行完成后目录结构:

给db数据库赋权:chmod 600 vsftpd_login.db

删除创建的ftpusers.txt文件:rm -rf ftpusers.txt

创建系统用户登录Linux系统:useradd -d /var/ftproot -s /sbin/nologin ftpuser

赋权:chmod -Rf 755 /var/ftproot/

创建pam模块认证文件:vim /etc/pam.d/vsftpd.vu

输入以下内容:

auth    required pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required pam_userdb.so db=/etc/vsftpd/vsftpd_login

然后修改主配置文件:vim /etc/vsftpd/vsftpd.conf

添加以下几行:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES

pam_service_name=vsftpd
userlist_enable=YES
guest_enable=YES
guest_username=ftpuser
pam_service_name=vsftpd.vu
user_config_dir=/etc/vsftpd/user
allow_writeable_chroot=YES

创建虚拟用户配置文件夹:mkdir /etc/vsftpd/user

进入/etc/vsftpd/user文件夹,创建wxm1和wxm2的ftp配置文件:cd /etc/vsftpd/user

touch wxm1 wxm2

如图:

wxm1的配置文件内容:

local_root=/home/ftpuser/wxm1  #wxm1虚拟用户配置文件路径

write_enable=YES  #允许登陆用户有写权限

anon_world_readable_only=YES #允许匿名用户下载,然后读取文件

anon_upload_enable=YES    #允许匿名用户上传文件权限,只有在write_enable=YES时该参数才生效

anon_mkdir_write_enable=YES   #允许匿名用户创建目录,只有在write_enable=YES时该参数才生效

anon_other_write_enable=YES   #允许匿名用户其他权限,例如删除、重命名等

wxm2的配置文件内容:

local_root=/home/ftpuser/wxm2
write_enable=YES
anon_world_readable_only=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

然后创建目录wxm1和wxm2,并赋权

mkdir -p /home/ftpuser/wxm{1..2}

chmod -R 755 /home/ftpuser/wxm1

chmod -R 755 /home/ftpuser/wxm2

chown -R ftpuser:ftpuser /home/ftpuser/

chmod 755 /home/ftpuser

重启vsftpd服务:systemctl restart vsftpd

登录验证:


四、Apache源码安装部署

创建部署Apache的文件夹:mkdir -p /usr/local/soft

进入目录:cd /usr/local/soft

下载软件:wget http://mirrors.hust.edu.cn/apache/httpd/httpd-2.4.46.tar.bz2

下载后解压:tar -xjf httpd-2.4.46.tar.bz2

解压后目录结构:

安装所需的apr环境:yum install apr apr-devel apr-util apr-util-devel -y

进入目录进行预编译:这一步主要是为了进行检测环境是否具备安装httpd服务,并指定安装目录,出现如图表示预编译成功

./configure --prefix=/usr/local/soft/apache --with-mpm=worker

然后进行make编译及安装:make -j4 && make -j4 install

安装成功如下:

进入httpd服务启动程序目录启动httpd服务:

cd /usr/local/soft/apache/bin

./apachectl start

修改自启动文件:

vim /etc/rc.d/rc.local

添加以下一行后即可开机自启:

/usr/local/soft/apache/bin/apachectl restart

检测是否能访问apache服务:浏览器输入apache服务所在ip,出现以下图片说明安装启动成功

五、kickstart批量部署系统

首先安装所需服务DHCP、TFTP、HTTPD等:yum install httpd httpd-devel dhcp* tftp-server xinetd -y

cd /etc/xinetd.d

vim tftp

修改标记的一行为no,如图:

创建光盘挂载文件夹,并且进行挂载:mkdir -p /mnt/cdrom

mount /dev/cdrom /mnt/cdrom

cd /var/lib/tftpboot     进入tftp目录

mkdir -p /var/lib/tftpboot/pxelinux.cfg/     创建启动的配置文件夹目录

安装syslinux   命令: yum install syslinux syslinux-devel -y

然后依次复制启动文件:

cp /mnt/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

cp /mnt/cdrom/isolinux/vesamenu.c32 /var/lib/tftpboot/

cp /mnt/cdrom/images/pxeboot/vmlinuz /var/lib/tftpboot/

cp /mnt/cdrom/images/pxeboot/initrd.img /var/lib/tftpboot/

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

赋权:chmod 644 /var/lib/tftpboot/pxelinux.cfg/default

vim /var/lib/tftpboot/pxelinux.cfg/default

输入以下内容:

default vesamenu.c32
timeout 10
display boot.msg
menu clear
menu background splash.png
menu title CentOS Linux 7
label linux
  menu label ^Install CentOS Linux 7
  menu default
  kernel vmlinuz 
  append initrd=initrd.img inst.repo=http://192.168.1.197/centos7 quiet ks=http://192.168.1.197/ks.cfg
label check
  menu label Test this ^media & install CentOS Linux 7
  kernel vmlinuz
  append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet

启动tftp和xinetd:

chkconfig tftp --level 35 on && service xinetd restart

然后确认xinetd和tftp都处于启动状态

创建目录用来存放系统:mkdir -p /var/www/html/centos7/

cd /var/www/html

vim ks.cfg

写入以下内容:

install
text
keyboard 'us'
rootpw  123456
timezone  Asia/Shanghai
url --url=http://192.168.1.197/centos7
lang zh_CN 
firewall  --disabled 
network  --bootproto=dhcp --device=ens32
auth      --useshadow  --passalgo=sha512
firstboot   --disable
selinux   --disabled 
bootloader --location=mbr
clearpart --all --initlabel
part /boot --fstype="ext4" --size=300
part / --fstype="ext4"   --grow
part swap --fstype="swap" --size=512
reboot
%packages
@base
@core
%end
 

然后进入:cd /etc/dhcp

vim dhcpd.conf

写入以下内容:

ddns-update-style interim;
ignore client-updates;
next-server 192.168.1.197;
filename "pxelinux.0";
allow booting;
allow bootp;
subnet 192.168.1.0 netmask 255.255.255.0 {

option routers          192.168.1.197;
option subnet-mask      255.255.255.0;
range dynamic-bootp 192.168.1.100 192.168.1.195;
}
 

然后进行光盘挂载:

umount /mnt/cdrom

mount /dev/cdrom //var/www/html/centos7

重启服务:

service httpd restart

service dhcpd restart

service xinetd restart

新建一个虚拟机看是否会重装系统

ps:本篇分享的技能到此结束,硬核技能分享请看下一篇文章。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
运维实战案例中,Python 可以用于实现自动化部署、监控、日志分析等任务。下面是一个简单的运维实战案例:使用 Python 编写监控脚本。 假设我们有一个 Web 应用,需要监控其是否正常运行,以及服务器的负载情况。我们可以使用 Python 编写一个监控脚本,定期发送 HTTP 请求来检查应用是否可访问,并获取服务器的 CPU 使用率和内存占用情况。 下面是一个简单的示例代码: ```python import requests import psutil def check_application(url): try: response = requests.get(url) if response.status_code == 200: print("Application is running.") else: print("Application is not running.") except requests.exceptions.RequestException as e: print("Failed to connect to the application:", str(e)) def monitor_server(): cpu_percent = psutil.cpu_percent() memory_percent = psutil.virtual_memory().percent print("CPU usage:", cpu_percent) print("Memory usage:", memory_percent) # 在这里调用 check_application() 和 monitor_server() 函数,并传入相应的参数 ``` 在以上代码中,`check_application()` 函数发送 HTTP 请求检查应用是否可访问,如果响应状态码为 200,则打印 "Application is running.",否则打印 "Application is not running."。`monitor_server()` 函数使用 `psutil` 库获取服务器的 CPU 使用率和内存占用情况,并打印出来。 你可以在适当的位置调用这两个函数,比如定时任务或者循环中,以达到监控的目的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值