1、搭建DHCP服务,为局域网内用户提供10.1.1.0/24网段的IP,且租约期默认为48小时
- 简介:dhcp(动态主机路由配置协议),通常应用在大型局域网中,主要作用是集中管理,分配IP地址,使网络环境中的主机能够实时获得可用的IP地址及释放IP地址,提升IP地址的利用率。
- Linux下搭建dhcp服务器
1.安装dhcp
[root@localhost centos]# yum install dhcp -y
2.修改dhcp配置文件/etc/dhcp/dhcpd.conf,修改完保存后重启
default-lease-time 172800; //设置租约期为48小时,单位是秒
max-lease-time 180000; //最大租约期
subnet 10.1.1.0 netmask 255.255.255.0 {
//网段为10.1.1.0,24位掩码
range 10.1.1.10 10.1.1.20; //地址范围是10.1.1.10-10.1.1.20
option routers 10.1.1.7; //指定默认网关是10.1.1.7
}
[root@localhost dhcp]# systemctl start dhcpd.service //启动服务
[root@localhost dhcp]# ss -unl //监听在udp协议的67号端口
State Recv-Q Send-Q Local Address:Port Peer Address:Port
UNCONN 0 0 *:51236 *:*
UNCONN 0 0 192.168.122.1:53 *:*
UNCONN 0 0 *:67 *:*
UNCONN 0 0 *%virbr0:67 *:*
3.配置客户端,使用命令动态获取dhcp地址 //我这里使用的是192.168.164.0网段测试
[root@node2 centos]# dhclient -d
Internet Systems Consortium DHCP Client 4.2.5
Copyright 2004-2013 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/virbr0-nic/52:54:00:f4:1a:f7
Sending on LPF/virbr0-nic/52:54:00:f4:1a:f7
Listening on LPF/virbr0/52:54:00:f4:1a:f7
Sending on LPF/virbr0/52:54:00:f4:1a:f7
Listening on LPF/ens33/00:0c:29:ee:c5:9a
Sending on LPF/ens33/00:0c:29:ee:c5:9a
Sending on Socket/fallback
DHCPDISCOVER on virbr0-nic to 255.255.255.255 port 67 interval 6 (xid=0x7c2d372c)
DHCPDISCOVER on virbr0 to 255.255.255.255 port 67 interval 4 (xid=0x7477d2bc)
DHCPREQUEST on ens33 to 255.255.255.255 port 67 (xid=0x2200a5d5)
DHCPACK from 192.168.164.154 (xid=0x2200a5d5) //dhcp服务器地址
bound to 192.168.164.10 -- renewal in 67843 seconds. //从服务器获取到的IP地址,证明dhcp服务器可用
2、在上述实验基础上,实现DHCP中继
- 所谓dhcp中继,即在dhcp服务器与客户端之间在添加一个dhcp服务器实现中转,该中继服务器需要开启报文转发功能
- 在(1)中我们已搭建好dhcp服务器,现在配置中继服务器
1.打开路由转发功能
[root@node3 centos]# echo "1" > /proc/sys/net/ipv4/ip_forward
[root@node3 centos]# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@node2 centos]# sysctl -p
2.准备另外一台主机配置中继服务器,也要先安装dhcp包
[root@node3 centos]# vim /etc/sysconfig/dhcrelay
INTERFACES="ens33" #侦听接口
DHCPSERVERS="192.168.164.153" #DHCP服务器IP地址
[root@node3 centos]# systemctl enable dhcrelay.service#开机自启动
[root@node3 centos]# systemctl start dhcrelay.service #启动中继服务
3.客户端请求
[root@node4 centos]#dhclient -d
3、借助Ansible Playbook自动化搭建LNMP环境(可借助yum)
- ansible简介:是一款自动化运维工具,基于python研发,高度模块化,支持playbook编排任务;YAML格式编排任务;
- 组成部分:
ANSIBLE PLAYBOOKS:任务剧本,ansible根据顺序依次执行
INVENTORY:Ansible管理主机的清单/etc/anaible/hosts
MODULES:Ansible执行命令的功能模块,多数为内置核心模块,也可自定义
PLUGINS:模块功能的补充,如连接类型插件、循环插件、变量插件、过滤插 件等,该功能不常用
API:供第三方程序调用的应用程序编程接口
ANSIBLE:组合INVENTORY、API、MODULES、PLUGINS的绿框,可以理解 为是ansible命令工具,其为核心执行工具 - 配置文件 :
/etc/ansible/ansible.cfg 主配置文件,配置ansible工作特性
/etc/ansible/hosts 主机清单
etc/ansible/roles/ 存放角色的目录 - 程序 :
/usr/bin/ansible 主程序,临时命令执行工具
/usr/bin/ansible-doc 查看配置文档,模块功能查看工具
/usr/bin/ansible-galaxy 下载/上传优秀代码或Roles模块的官网平台
/usr/bin/ansible-playbook 定制自动化任务,编排剧本工具
/usr/bin/ansible-pull 远程执行命令的工具
/usr/bin/ansible-vault 文件加密工具
/usr/bin/ansible-console 基于Console界面与用户交互的执行工具 - ansible命令使用:
ansible [-m module_name] [-a args]
参数 | 含义 |
---|---|
–version | 显示版本 |
-m module | 指定模块,默认为command |
-v | 详细过程 |
–vv,vvv | 更详细 |
–list-hosts | 显示主机列表,可简写 --list |
-k, --ask-pass | 提示输入ssh连接密码,默认Key验证 |
-C, --check | 检查,并不执行 |
-T, --timeout=TIMEOUT | 执行命令的超时时间,默认10s |
-u, --user=REMOTE_USER | 执行远程执行的用户 |
-b, --become | 代替旧版的sudo 切换 --become-user=USERNAME 指定sudo的runas用户,默认为root |
-K, --ask-become-pass | 提示输入sudo时的口令 |
-
ansible命令执行过程
1.加载自己的配置文件 默认/etc/ansible/ansible.cfg
2.加载自己对应的模块文件,如command
3.通过ansible将模块或命令生成对应的临时py文件,并将该文件传输至远程服 务器的对应执行用户$HOME/.ansible/tmp/ansible-tmp-数字/XXX.PY文件
4.给文件+x执行
5.执行并返回结果
6.删除临时py文件,退出 -
执行状态:
1.绿色:执行成功并且不需要做改变的操作
2.黄色:执行成功并且对目标主机做变更
3.红色:执行失败 -
常用模块
1.Command:在远程主机执行命令,默认模块,可忽略-m选项示例:ansible srvs -m command -a ‘service vsftpd start’ ansible srvs -m