美文网首页
第十六周作业

第十六周作业

作者: 卫清华 | 来源:发表于2019-06-12 09:13 被阅读0次

    1、搭建DHCP服务,为局域网内用户提供10.1.1.0/24网段的IP,且租约期默认为48小时

    dhcp的介绍

    DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作, 主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段,在RFC 2131中有详细的描述。DHCP有3个端口,其中UDP67和UDP68为正常的DHCP服务端口,分别作为DHCP Server和DHCP Client的服务端口;546号端口用于DHCPv6 Client,而不用于DHCPv4,是为DHCP failover服务,这是需要特别开启的服务,DHCP failover是用来做“双机热备”的。

    DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。

    DHCP租约过程

    1、租约过程:

    1)客户端发送DHCP discover广播包,寻找DHCP服务器

    客户端源ip用的是0.0.0.0,源mac是自己本机的mac。

    2)服务器回应DHCP offer包

    提供可用的ip,租约信息等

    3)客户端发送DHCP request

    宣告自己所选择的DHCP服务器

    发送arp广播确认IP地址是否没有被占用

    4)服务器发送ACK确认

    这个ack包里包含了给客户端分配的所有的网络参数

    一 搭建dhcp服务

    步骤:

    (1)安装dhcpd服务

    yum install dhcpd

    (2)安装完成后,需要对dhcpd进行配置

    配置文件位置:

    /etc/dhcp/dhcpd.conf

    subnet 10.1.1.0 netmask 255.255.255.0 {

            option routers                  10.1.1.1;   #网关地址设定

            option subnet-mask              255.255.255.0; #子网掩码设定

            option domain-name              "localdomain"; #主机域名

            option domain-name-servers      10.1.1.x; #设定DNS服务器地址

            range dynamic-bootp 10.1.1.2 10.1.1.254; #动态分配的IP地址范围

    }

    default-lease-time         #默认租约时间

    max-lease-time             #最大租约时间

    2、借助Ansible Playbook自动化搭建LNMP环境(可借助yum)

    3、采用Ansible Role方式自动化搭建LNMP

    下面是安装nginx的信息:

    nginx_user: www                        nginx用户

    nginx_port: 80                         nginx监听端口

    nginx_web_dir: /data/webroot/nginx     nginx的目录

    nginx_version: 1.4.3                   nginx的版本

    pcre_version: 8.33                     pcre的版本

    pretended_name: Tengine                为了安全起见,把nginx名字改为tengine

    pretended_version: 1.5.2               隐藏版本,换个tengine的版本

    下面是安装php的信息:

    php_user: www                            php fpm模式的启动用户

    php_port: 9000                           php fpm使用tcp的端口

    php_dir: /usr/local                      php的安装目录

    php_version: 5.3.10                      php的版本

    mysql_basedir: /data/mysql/basedir       mysql的目录

    下面是安装mysql的信息:

    mysql_basedir: /data/mysql/basedir                    源码目录

    mysql_datadir: /data/mysql/datadir                    数据目录

    mysql_user: mysql                                     mysql用户

    mysql_database_user: root                             数据库用户

    mysql_passwd: 'E4yR3WnoluSFTCBAI'                     数据库密码

    mysql_port: 3306                                      mysql监听端口

    mysql_sock: /data/mysql/datadir/mysql.sock            mysql的sock

    mysql_charset: utf8                                   mysql字符集

    mysql_collation: utf8_general_ci                      mysql排序方式

    mysql_version: Percona-Server-5.5.21-rel25.1.tar.gz   mysql版本

    备注:此playbook仅能对centos或者redhat的6.x版本进行安装。

    下面是安装lnmp的playbook结构

    09:28:50 # tree nginx* mysql* php*

    nginx_delete

    ├── files

    ├── handlers

    ├── meta

    │   └── main.yml

    ├── tasks

    │   ├── delete.yml

    │   └── main.yml

    ├── templates

    └── vars

        └── main.yml

    nginx_install

    ├── files

    │   └── nginx-1.4.3.tar.gz

    ├── handlers

    ├── meta

    │   └── main.yml

    ├── tasks

    │   ├── copy.yml

    │   ├── delete.yml

    │   ├── install.yml

    │   └── main.yml

    ├── templates

    │   ├── index.html

    │   ├── index.php

    │   ├── install_nginx.sh

    │   ├── nginx

    │   ├── nginx.conf

    │   └── vhost.conf

    └── vars

        └── main.yml

    mysql_delete

    ├── files

    ├── handlers

    ├── meta

    │   └── main.yml

    ├── tasks

    │   ├── delete.yml

    │   └── main.yml

    ├── templates

    └── vars

        └── main.yml

    mysql_install

    ├── files

    │   └── mysql.tar.gz

    ├── handlers

    ├── meta

    │   └── main.yml

    ├── tasks

    │   ├── copy.yml

    │   ├── delete.yml

    │   ├── install.yml

    │   └── main.yml

    ├── templates

    │   ├── install_mysql.sh

    │   ├── my.cnf

    │   ├── mysqld

    │   └── mysql_security.sh

    └── vars

        └── main.yml

    php_delete

    ├── files

    ├── handlers

    ├── meta

    │   └── main.yml

    ├── tasks

    │   ├── delete.yml

    │   └── main.yml

    ├── templates

    │   └── delete_php.sh

    └── vars

        └── main.yml

    php_install

    ├── files

    │   └── php.tar.gz

    ├── handlers

    ├── meta

    │   └── main.yml

    ├── tasks

    │   ├── copy.yml

    │   ├── delete.yml

    │   ├── install.yml

    │   └── main.yml

    ├── templates

    │   ├── install_php.sh

    │   ├── php-fpm

    │   └── php-fpm.conf

    └── vars

        └── main.yml

    36 directories, 47 files

    playbook的lnmp安装是

    09:29:59 # cat lnmp_install.yml 

    ---

    - hosts: "`host`"

      remote_user: "`user`"

      gather_facts: True

      roles:

        - common

        - pcre_install

        - nginx_install

        - mysql_install

        - php_install

    playbook的lnmp删除是

    09:30:33 # cat lnmp_delete.yml 

    ---

    - hosts: "`host`"

      remote_user: "`user`"

      gather_facts: True

      roles:

        - pcre_delete

        - php_delete

        - nginx_delete

        - mysql_delete

    相关文章

      网友评论

          本文标题:第十六周作业

          本文链接:https://www.haomeiwen.com/subject/ujxkfctx.html