1、详细叙述ansible的工作原理
ansible基于python和ssh来实现远程管理,当使用ansible命令时,它把要发送的指令转换为python脚本,再通过ssh协议发送到远程主机,再从远程主机把python脚本转换为相关指令再执行,最后删除相关python脚本。
2、使用ansible在多台机器上添加用户
ansible appsrvs -m user -a 'name=atest home=/data/test/ shell=/sbin/nologin uid=1066'
3、用ansible-playbook编译安装nginx服务
[root@centos7 ansible]# cat nginx.yml
---
- hosts: appsrvs
remote_user: root
roles:
- nginx_install
[root@centos7 roles]# tree
.
└── nginx_install
├── files
│ └── nginx-1.17.5.tar.gz
├── tasks
│ └── main.yml
└── templates
└── nginx.conf
[root@centos7 ansible]# vim /usr/share/ansible/roles/nginx_install/tasks/main.yml
- name: install development tools
yum:
name: ['openssl-devel', 'pcre-devel', 'gcc']
state: latest
- name: cp package
copy: src=nginx-1.17.5.tar.gz dest=/data/nginx/
- name: install nginx
shell: cd /data/nginx;tar xf nginx-1.17.5.tar.gz;cd nginx-1.17.5;./configure --user=nginx --group=nginx --prefix=/usr/local/nginx;make && make install
- name: cp config file
template: src=nginx.conf dest=/usr/local/nginx/conf/nginx.conf
- name: create group
group: name=nginx
- name: create user
user: name=nginx shell=/sbin/nologin
- name: start service
shell: /usr/local/nginx/sbin/nginx
ansible-playbook nginx.yml
4、描述域名劫持的解决方法
不使用自动获取的DNS地址,而是通过手动设置自己信赖的DNS地址
5、描述DNS的递归查询
当客户端向自己的DNS服务器查询某域名的ip是,如果dns服务器并没有这条域名的解析记录,该DNS服务器并不会马上返回相关信息,而是由自己代为向上级DNS服务器查询该记录,指到查询到相关记录,再记录返回给客户端。
6、DNS工作原理详细解析
(1)客户端发送请求给自己的缓存DNS服务器
(2)如果缓存DNS服务器上有该域名记录,则直接返回给客户端,如果没有,则向根DNS服务器查询
(3)根DNS服务器将一级域名服务器的IP返回给缓存DNS服务器
(4)缓存DNS服务器向一级域名服务器查询
(5)一级域名服务器把二级域名服务器的IP返回给缓存服务器
(6)缓存域名服务器继续查询,指到查找到完整的域名记录
(7)缓存服务器将查询到的记录返回给客户端
7、dns区域转发与全局转发区别与实现方法
区域转发只对指定的域有效,全局转发则全局有效。
全局转发配置
vim /etc/named.conf
options {
forward first ;
forwarders {192.168.34.17;};
};
区域转发配置
zone "huangjian.com" {
type forward;
forward first;
forwarders {192.168.34.6;};
};
8、实现智能DNS
cat /etc/named.conf
acl huqing {
192.168.34.17/32;
};
acl huangjian {
192.168.34.7/32;
};
view huqing_view {
match-clients { huqing;};
include "/etc/named.rfc1912.zones.huqing";
};
view huangjian_view {
match-clients {huangjian;};
include "/etc/named.rfc1912.zones.huangjian";
};
cat /etc/named.rfc1912.zones.huqing
zone "huqing.com" {
type master;
file "huqing.com.zone.huqing";
};
cat /etc/named.rfc1912.zones.huangjian
zone "huqing.com" {
type master;
file "huqing.com.zone.huangjian";
};
cat /var/named/huqing.com.zone.huqing
$TTL 86400
@ IN SOA dns1 admin ( 1 3H 10M 1D 1H )
NS dns1
dns1 A 192.168.34.6
www A 11.11.11.11
cat /var/named/huqing.com.zone.huangjian
$TTL 86400
@ IN SOA dns1 admin ( 1 3H 10M 1D 1H )
NS dns1
dns1 A 192.168.34.6
www A 33.33.33.33