ansible、DNS

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容