Linux DHCP协议的实现程序:dhcp(重量级)、dnsmasq(轻量级)
dhcp:
/usr/sbin/dhcp
/etc/dhcp/dhcpd.conf --> /etc/rc.d/init.d/dhcpd
/etc/dhcp/dhcpd6.conf --> /etc/rc.d/init.d/dhcpd6
/usr/sbin/dhcrelay
/etc/rc.d/init.d/dhcrelay
服务器端监听在udp的67号端口、客户端使用udp的68号端口。
dhclient 是dhcp客户端命令,可以在不重启网卡的情况下获得地址。
dhcpd.conf:
subnet {
...
}
host {
}
subnet 172.168.0.0 netmask 255.255.0.0 {
range 172.168.100.151 172.16.100.170;
}
~]# cat /var/lib/dhcpd/dhcpd.leases 查看分出去的地址
option routers 172.16.100.67 # 指定网关
其它配置选项:
filename:指明引导文件名称;
next-server:提供引导文件的服务器IP地址;
PXE:preboot excute environment,Intel
dchp,tftp,file server(yum repository)
Ansible:
OS Provisioning:
物理机:PXE、Cobbler
虚拟机:Image Templates
Configration:
puppet (ruby)
saltstack (python)
chef
cfengine
Command and Control:
fabric
预发布验证:
新版本的代码先发布到服务器(跟线上环境配置完全相同,只是未接入到调试器);
程序发布:
不能影响用户体验;
系统不能停机;
不能导致系统故障或造成系统完全不可用;
灰度发布:
发布路径:
/webapp/tuangou-1.1
/webapp/tuangou
/webapp/tuangou-1.2
在调试器上下线一批主机(maintanance) --> 关闭服务 --> 部署新版本的应用程序 --> 启动服务 ---> 在调试器上启用这一批服务器;
自动化灰度发布:脚本、发布平台;
运维工具的分类:
agent:puppet,func
agentless:ansible,fabric
ansible:
模块化,调用特定的模块,完成特定的任务;
基于Python语言实现,由Paramiko,pyYaml和jinja2三个关键模块;
部署简单,agentless;
主从模式
支持自定义模块
支持Playbook
配置文件:
/etc/ansible/ansible.cfg
/etc/ansible/hosts
简单应用:
ansible通过ssh实现配置管理、应用部署、任务执行等功能,因此,需要事先配置ansible端能基于密钥认证的方式联系各被管理节点。
ansible <host-pattern> [-f forks] [-m module_name] [-a args]
-m module:默认为command
ansible-doc: Show Ansible module documentation
-l, --list List available modules
-s, --snippet Show playbook snippet for specified module(s)