1、搭建DHCP服务,为局域网内用户提供10.1.1.0/24网段的IP,且租约期默认为48小时
- 安装软件包
yum instsll dhcp
- 配置服务
vim /etc/dhcp/dhcpd.conf
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;
default-lease-time 172800;
max-lease-time 172800;
db-time-format local; #数据库中的时间显示本地时间
log-facility local7;
subnet 10.1.1.0 netmask 255.255.255.0 {
range 10.1.1.100 10.1.1.200;
}
- 启动服务并验证
systemctl start dhcpd
# 重新获取IP
dhclient -d
# 查看服务器上的IP地址分配数据库
cat /var/lib/dhcp/dhcpd.conf
2、在上述实验基础上,实现DHCP中继
Dhcp服务和中继服务不能同时开启
# 开启路由转发功能
vim /etc/sysctl.conf
net.ipv4.ip-forward=1
sysctl -p
# 启动dhcp中继服务
dhcrelay dhcp_server_ip
中继服务实际使用中,基本没有必要使用。其他网络的主机另外新建一个dhcp服务就好,没有必要非得使用中继。
3、借助Ansible Playbook自动化搭建LNMP环境(可借助yum)
- hosts: all
remote_user: root
tasks:
- name: install nginx
yum: name=nginx state=installed
when: ansible_os_family == "RedHat"
- name: install php
yum:
name: ['php', 'php-mysql', 'php-mbstring', 'php-gd', 'php-bcmatch']
state: latest
- name: install mariadb
yum: name=mariadb-server state=installed
- name: copy config file
copy: src=web.conf dest=/etc/nginx/conf.d/
notify: restart nginx
- name: start nginx
service: name=nginx state=started enabled=yes
- name: start mariadb
service: name=mariadb state=started enabled=yes
handlers:
- name: restart nginx
service: name=nginx state=restarted
4、采用Ansible Role方式自动化搭建LNMP
- 首先搭建所有角色的目录
cd /etc/ansible/roles
mkdir -pv ./{php,nginx,mariadb}/{tasks,files,handlers,templates,meta,defaul,vars}
- 编写nginx playbook
task文件
vim nginx/tasks/main.yml
- name: install nginx
yum: name=nginx state=latest
when: ansible_os_family == "RedHat"
- name: copy config file
copy: src=web.conf dest=/etc/nginx/conf.d/
notify: restart nginx
- name: start nginx
service: name=nginx state=started enabled=yes
handler 文件
vim nginx/handlers/main.yml
- name: restart nginx
service: name=nginx state=restarted
- 编写PHP的playbook
vim php/tasks/main.yml
- name: install php
yum:
name: ['php', 'php-mysql', 'php-mbstring', 'php-gd', 'php-bcmatch']
state: latest
- 编写mariadb 的Playbook
vim mariadb/tasks/main.yml
- name: install mariadb
yum: name=mariadb-server state=latest
when: ansible_os_family == "RedHat"
- name: start mariadb
service: name=mariadb state=started
- name: grant user
shell: mysql -e "create database web;grant all on web.* to test@'192.168.30.%' identified by 'centos';"
- 组合所有角色
vim /root/andible/lnmp.yaml
- hosts: websrvs
remote_user: root
roles:
- nginx
- php
- mariadb
- 调试和调用角色
ansilbe-playbook -C /root/ansible/lnmp.yaml