DHCP服务 、Ansible

(第十七周作业)

1、搭建DHCP服务,为局域网内用户提供10.1.1.0/24网段的IP,且租约期默认为48小时
1)准备两台服务器,都位于10.1.1.0/24网段内:
A机:DHCP服务端,
B机:客户端,从服务器获得IP地址。
2)A机服务端执行以下操作:
临时关闭防火墙
# service iptables stop 
临时关闭 selinux
# setenforce 0 
停止网络管理服务的开机自启动设置
# chkconfig --level 2345 NetworkManager off   
关闭网络管理服务
# service NetworkManager stop
编辑网卡设置
# vi  /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
#表示该接口将通过该配置文件进行设置,而不是通过网络管理器进行管理
NM_CONTROLLED=no
#服务器自身使用静态IP地址
BOOTPROTO=static 
#配置地址为
IPADDR=10.1.1.88
#网关配置
GATEWAY=10.1.1.2 

安装DHCP服务
# yum install dhcp*   -y
配置DHCP服务
#vi /etc/dhcp/dhcpd.conf 

allow bootp;
#默认租约时间(单位为秒,48小时为48*3600秒,即172800秒)
default-lease-time 172800;
#最大租约时间
max-lease-time 172800;
#syslog设置,可以到/var/log/syslog文件查看DHCP分配的日志
log-facility local7;
#子网和子网掩码
subnet 10.1.1.0 netmask 255.255.255.0 {
#客户端的默认网关
option routers 10.1.1.2; 
#客户端的子网掩码
option subnet-mask 255.255.255.0; 
#客户端的搜索域
option domain-name "magedu.com";
#客户端的域名服务器
option domain-name-servers 10.1.1.2; 
#可供分配的IP范围
range dynamic-bootp 10.1.1.50 10.1.1.250; 
}

重启 dhcp 服务
# service dhcpd restart 
3)B机客户端执行以下操作进行测试
编辑网卡配置文件
# vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
#不通过网络管理器进行管理
NM_CONTROLLED=no
#通过dhcp服务来获得IP
BOOTPROTO=dhcp 

重启网卡
# service network restart 
查看B机的IP
# ifconfig 
如果IP在10.1.1.50 和10.1.1.250之间,则测试成功。

2、在上述实验基础上,实现DHCP中继
DHCP中继:当DHCP客户机和DHCP服务器不在同一个网段时,由DHCP中继传递DHCP报文
在第1题实验的基础上,
准备一台DHCP中继器,这里称为C机,有两张网卡,一张与10.1.1.0/24网段连接,另一线与10.1.2.0/24网段连接,
还需要一台D机作为10.1.2.0/24网段的客户端服务器,用于验证DHCP中继服务。
1)在A机,修改DHCP服务配置文件,增加一下子网设置:

subnet 10.1.2.0 netmask 255.255.255.0 {
#客户端的默认网关
option routers 10.1.2.2; 
option subnet-mask 255.255.255.0; 
#客户端的搜索域
option domain-name "magedu.com";
#客户端的域名服务器
option domain-name-servers 10.1.1.2; 
#可供分配的IP范围
range dynamic-bootp 10.1.2.50 10.1.2.250; 
}

重启DHCP服务
#service dhcpd restart 
2)在C机(DHCP中继服务器)执行的操作
安装DHCP服务
# yum install dhcp*   -y
安装dhcp软件包,安装完之后,就已经包含了dhcp中继相关的程序和脚本等文件。配置dhcp中继服务器时,只需修改配置文件/etc/sysconfig/dhcrelay服务即可,作为路由器使用时,还需要开启服务器的路由转发功能。
#vi  /etc/sysconfig/dhcrelay

#指定要监听网卡,不定义就是监听所有
INTERFACES="eth0 eth1"
#指定DHCP服务器的地址
DHCPSERVERS="10.1.1.88"

配置网卡配置文件
# vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.1.1.2
NETMASK=255.255.255.0
GATEWAY=10.1.1.2
#不通过网络管理器进行管理
NM_CONTROLLED=no

# vi /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.1.2.1
NETMASK=255.255.255.0
GATEWAY=10.1.2.1
#不通过网络管理器进行管理
NM_CONTROLLED=no

开启服务器的路由转发功能
# echo 1 > /proc/sys/net/ipv4/ip_forward
重启网卡
#service network restart
重启DHCP中继服务
#service  dhcrelay restart   
3)D机客户端执行以下操作进行测试
(D机执行与B机一样的操作,以验证IP是否能够获取到)

3、借助Ansible Playbook自动化搭建LNMP环境(可借助yum)
需要两台虚拟机
A机:Ansible服务器(192.168.56.70)
B机:安装LNMP环境(192.168.56.71)
1)A机安装Ansible服务
#yum install epel-release  -y
#yum install ansible -y 
2)A机执行以下操作:
创建资产文件
# vi  /etc/ansible/hosts

[LNMPserver]
192.168.56.71 

创建playbook文件
# vi   /root/main.yml

---
- hosts: LNMPserver
#远程主机的用户
  remote_user: root
  tasks:
#安装Nginx(首先要下载 nginx-1.14.2.tar.gz 放到/root目录下)
  - name:  copy Nginx tar to remote hosts
    copy: src=/root/nginx-1.14.2.tar.gz   dest=/tmp/nginx-1.14.2.tar.gz  
  - name:  tar x Nginx tar 
     shell: cd /tmp;tar -xf  nginx-1.14.2.tar.gz
        ##安装依赖包
   - name: install dependcy pakger  
    yum: name={{ item }} state=latest     
    with_items:    
      - openssl-devel
      - pcre-devel
      - gcc
        ##创建nginx用户的脚本后面给出
  - name:copy useradd nginx shell
    copy:  src=/root/create_users.sh  dest=/tmp/create_users.sh
  -name:  create user nginx
     shell: /bin/bash /tmp/create_users.sh
        ##编译安装nginx
  - name: install Nginx
    shell: cd /tmp/nginx-1.14.2;./configure--user=nginx --group=nginx --prefix=/usr/local/nginx--with-http_stub_status_module --with-http_ssl_module --with-pcre;make&& make install
  - name: startnginx service        
    shell: /usr/loal/nginx/sbin/nginx 
#安装mysql
  - name: Install MariaDB 
    yum: name={{ item }} state=present
    with_items:
      - mariadb-server
      - mariadb
  - name: Start MariaDB Service
    service: name=mariadb state=started enabled=yes
#安装php-nginx
  - name: install php-nginx
     yum: name={{ item }} state=present
      -  php
      -  php-gd
      -  php-mysql
      -  gd
      -  php-fpm
   - name: start php-fpm service
     service: name=php-fpm state=started enabled=yes

编写创建nginx用户的脚本
# vi  /root/create_users.sh

#!/bin/bash
id nginx  >/dev/null  2>&1
if [ $? -ne 0 ];then
   useradd nginx 
fi

使用ansible-playbook进行检测:
#cd  /root
# ansible-playbook main.yml  --syntax-check  
检测无误后执行
# ansible-playbook main.yml
4、采用Ansible Role方式自动化搭建LNMP
在第3题的基础上
在A机执行以下操作
# mkdir  /root/LNMP
定义主文件
# vi  /root/LNMP/lnmp.yaml

---
- name: "Install Nginx, Mysql and php-fpm"
  hosts: lnmpServer
  remote_user: root
  roles:
    - nginx
    - mysql
    - php-fpm

设置资产文件
# vi /root/LNMP/hosts

[lnmpServer]
192.168.56.32

创建roles目录及各应用子目录
# mkdir  -p  /root/LNMP/roles/{nginx,mysql,php-fpm}
(1)关于nginx子目录下创建相关的子目录
#mkdir  -p /root/LNMP/roles/nginx/{handlers,tasks,templates,files}
#vi  /root/LNMP/roles/nginx/handlers/main.yml

---
- name: restart nginx
  shell: /usr/loal/nginx/sbin/nginx  -s reload

# vi   /root/LNMP/roles/nginx/tasks/main.yml

---
- name:  copy Nginx tar to remote hosts
    copy: src=nginx-1.14.2.tar.gz   dest=/tmp/nginx-1.14.2.tar.gz  
  - name:  tar x Nginx tar 
     shell: cd /tmp;tar -xf nginx-1.14.2.tar.gz 
##安装依赖包 
   - name: install dependcy pakger 
    yum: name={{ item }} state=latest 
    with_items: 
      - openssl-devel
      - pcre-devel
      - gcc 
        ##拷贝创建nginx用户的脚本
    - name:copy useradd nginx shell
      copy:  src=create_users.sh  dest=/tmp/create_users.sh 
    - name:  create user nginx 
     shell: /bin/bash /tmp/create_users.sh 
        ##编译安装nginx
  - name: install Nginx
    shell: cd /tmp/nginx-1.14.2;./configure--user=nginx --group=nginx --prefix=/usr/local/nginx--with-http_stub_status_module --with-http_ssl_module --with-pcre;make&& make install 
  - name: startnginx service 
    shell: /usr/loal/nginx/sbin/nginx 

把nginx-1.14.2.tar.gz放入/root/LNMP/roles/nginx/files中
# cp  /root/nginx-1.14.2.tar.gz  /root/LNMP/roles/nginx/files
把create_users.sh放入/root/LNMP/roles/nginx/templates中
# cp  /root/create_users.sh  /root/LNMP/roles/nginx/templates
(2)关于mysql子目录下创建相关的子目录
#mkdir  -p /root/LNMP/roles/mysql/{handlers,tasks,templates}
#vi  /root/LNMP/roles/mysql/handlers/main.yml

---
- name: restart mariadb service
  service: name=mariadb state=restarted

# vi   /root/LNMP/roles/mysql/tasks/main.yml

---
  - name: Install MariaDB 
    yum: name={{ item }} state=present
    with_items:
      - mariadb-server
      - mariadb
  - name: Start MariaDB Service
    service: name=mariadb state=started enabled=yes

(3)关于php-fpm子目录下创建相关的子目录
#mkdir  -p /root/LNMP/roles/php-fpm/{handlers,tasks,templates}
#vi  /root/LNMP/roles/php-fpm/handlers/main.yml

---
- name: restart php-fpm service
  service: name=php-fpm state=restarted

# vi   /root/LNMP/roles/php-fpm/tasks/main.yml

---
- name: install php-nginx 
     yum: name={{ item }} state=present 
      -  php 
      -  php-gd
      -  php-mysql
      -  gd
      -  php-fpm
   - name: start php-fpm service 
     service: name=php-fpm state=started enabled=yes

(4)检测并执行部署
#cd  /root/LNMP
# ansible-playbook lnmp.yaml --syntax-check  
检测无误后执行
# ansible-playbook lnmp.yaml 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343

推荐阅读更多精彩内容