利用ansible批量管理windows2008 R2 以上dns服务器

准备:安装dns服务器net3.5  PowerShell DnsShell插件用到。DnsShell插件附件里面 ansible 支持环境也要安装的

ansible 目录结构说明:

.
├── DnsShell #PowerShell dns支持模块 cp to C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules 正在文件夹
│   ├── DNSShell.dll
│   ├── DnsShell.Format.ps1xml
│   ├── DnsShell.psd1
│   └── en-US
│       └── DnsShell.dll-help.xml
├── dns.yml # ansible 使用脚本
├── hosts # 客户机ip存放文件
└── roles
    └── dns
        ├── files
        │   └── dns.ps1 # PowerShell  脚本
        └── tasks
            └── main.yml # ansible 使用脚本
dns.yml 说明:
- hosts: dns # 执行客户机列表 可设置变量
  vars: #默认参数
    parameter: dnszone #创建主域 (dnszone 添加主域名 A 记录 创建已有域名A 记录 CNAME 添加域名cname 记录 delete 删除域名记录 update 更新域名 )
    Domain: test.com # test.com
    name: A # a记录
    ipaddress: 192.168.1.1 # 记录ip
    ipaddress2: 192.168.1.1  # 修改域名才生效
  roles: 
    - dns # ansible 执行任务
main.yml 说明:
- name: sc dns
  script: dns.ps1 {{parameter}} {{Domain}} {{name}} {{ipaddress}} {{ipaddress2}}
  #参数说明parameter 执行标签判断 例如:添加域名,删除域名,修改域名等
  Domain 要操作的域名
  name 域名记录 a记录 mx记录等
  ipaddress a记录的IP cname 域名
  ipaddress2  修改域名解析使用
dns.ps1 说明
# ************************************************************ 
# *                                                          * 
# *                 Powershell部署DNS脚本                    * 
# *                                                          * 
# ************************************************************ 
#set-executionpolicy remotesigned 
# 修改dns所用参数
################################################################################################# 
#参数申明
param($a,$b,$c,$d,$e)
$parameter=$a
$Domain=$b
$name=$c
$ipaddress=$d
$ipaddress2=$e
#################################################################################################
import-module dnsshell # 导入dnsshell 模块
##创建主域
if ($parameter -eq "dnszone") 
{
new-dnszone -zonename $Domain -zonetype primary
}
## 添加A记录
elseif ($parameter -eq "A")
{
new-dnsrecord -zonename $Domain -name $name -recordtype A -ipaddress $ipaddress
}
##添加CNAME记录
elseif ($parameter -eq "CNAME")
{
new-dnsrecord -zonename  $Domain -name $name -recordtype CNAME -hostname $ipaddress
}
## 删除dns记录
elseif ($parameter -eq "delete")
{
$ARecord = Get-WmiObject -Namespace root\MicrosoftDNS -class MicrosoftDNS_ResourceRecord -filter "containername=‘$Domain‘ AND OwnerName=‘$name.$Domain‘ and RecordData=‘$ipaddress‘"
$ARecord.delete()
}
## 更新dns记录
elseif ($parameter -eq "update")
{
$ARecord = Get-WmiObject -Namespace root\MicrosoftDNS -class MicrosoftDNS_ResourceRecord -filter "containername=‘$Domain‘ AND OwnerName=‘$name.$Domain‘ and RecordData=‘$ipaddress‘"
$ARecord.Modify($ARecord.TTL,"$ipaddress2")
}
else
{
exit
}

其它说明:

添加主域名:ansible-playbook -i hosts dns.yml -verbose --extra-vars "parameter=dnszone Domain=test.com"
添加 A记录
ansible-playbook -i hosts dns.yml -verbose --extra-vars "parameter=A Domain=test.com name=www ipaddress=192.168.1.1"
添加 cname记录
ansible-playbook -i hosts dns.yml -verbose --extra-vars "parameter=cname Domain=test.com name=test ipaddress=
删减记录:
 ansible-playbook -i hosts dns.yml -verbose --extra-vars "parameter=deleteDomain=test.com name=www ipaddress=192.168.1.1"
  ansible-playbook -i hosts dns.yml -verbose --extra-vars "parameter=delete Domain=test.com name=test ipaddress=www.test.com. # 点不能取消 
 更新记录
 ansible-playbook -i hosts dns.yml -verbose --extra-vars "parameter=update Domain=test.com name=www ipaddress=192.168.1.1 ipaddress2=192.168.1.2"
 ansible-playbook -i hosts dns.yml -verbose --extra-vars "parameter=update Domain=test.com name=test ipaddress=www.test.com. ipaddress2=www.baidu.com."  
  完整代码下载附件
时间: 2024-11-05 12:34:50

利用ansible批量管理windows2008 R2 以上dns服务器的相关文章

免密码交互方式+ansible批量管理服务介绍

介绍了ssh服务 1) 远程连接加密传输数据协议,实现远程连接登录,默认端口222)ssh远程连接原理依赖于锁头(公钥)和钥匙(私钥),实现远程加密连接3)ssh基于秘钥远程登录原理a 管理服务器创建秘钥対,将公钥传输发送给给管理端b 管理端请求与被管理端建立连接c 被管理向管理端发送公钥质询d 管理端处理质询信息,实现管理与被管理端免密码交互4)基于ssh协议相关命令ssh scp sftp netstat -lntup |egrep sshd 查看ssh端口 1.1 部署ssh+key (免

ansible批量管理远程服务器

使用ansible批量管理远程服务器 背景 本地需要管理远程的一批服务器,主要执行以下任务: 1) 将本地的文件复制到远端所有服务器:  2) 需要在远程服务器中执行一个个命令: 远端服务器路径并非完全一致,一般访问通过环境变量中定义的变量路径访问:  比如在.bashrc中定义$app_path=/opt/app/bin 最终选择ansible,使用这个自动化运维工具可以满足我的需求:  下面介绍下对于我这种场景需要使用的ansible的主要模块:  关于ansible是什么以及安装配置请自行

使用ansible批量管理远程服务器

使用ansible批量管理远程服务器 背景 本地需要管理远程的一批服务器,主要执行以下任务: 1) 将本地的文件复制到远端所有服务器: 2) 需要在远程服务器中执行一个个命令: 远端服务器路径并非完全一致,一般访问通过环境变量中定义的变量路径访问: 比如在.bashrc中定义$app_path=/opt/app/bin 最终选择ansible,使用这个自动化运维工具可以满足我的需求: 下面介绍下对于我这种场景需要使用的ansible的主要模块: 关于ansible是什么以及安装配置请自行百度:

CentOS6服务管理之DNS-主从DNS服务器的搭建

接上一篇:CentOS6服务管理之DNS-本地DNS服务器的搭建 下面我们来搭建主从DNS服务器 实验环境: CentOS release 6.6(Final)  两台 IP地址: 172.16.31.3      DNS1        主DNS服务器端 172.16.31.4      DNS2        从DNS服务器端 我们要架设一个DNS服务器一般需要下面三个软件程序包: bind-libs.x86_64      #提供库文件 bind-utils.x86_64     #提供工

Linux中ansible批量管理软件部署及剧本编写

服务器版本信息: Centos6.9 [[email protected] ~]# uname -a Linux db02 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux ansible软件介绍 ansible是一个基于Python开发的自动化运维工具! 其功能实现基于SSH远程连接服务! ansible可以实现批量系统配置.批量软件部署.批量文件拷贝.批量运行命令等

ansible批量管理常见的配置方法

第7章 ansible的管理????103 7.1 ansible概念的介绍????103 7.1.1 ansible的概念????104 7.1.2 ansible使用的一些意义????104 7.1.3 ansible拥有哪些服务????104 7.1.4 ansible服务的一些特点????104 7.2 ansible部署过程????104 7.2.1 服务的安装????104 7.2.2 服务版本的检查????105 7.3 ansible的主机清单讲解????105 7.3.1 根据

利用ansible批量创建iis站点

准备: 系统必须大于等于windows2008 R2 系统 升级 PowerShell至3.0 安装iis 安装net ansible控制台目录结构 . ├── hosts #ansible 存放客户机IP ├── roles │   └── web │       ├── files │       │   └── web.ps1 # 创建iis站点ps脚本 │       └── tasks │           └── main.yml #ansible 控制脚本 └── web.yml

通过ansible批量管理Linux服务器:配置Inventory和批量执行命令

ansible是一款比较新的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能.ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架.主要包括:(1).连接插件connection plugins:负责和被监控端实现通信:(2).host inventory:指定操作的主机,是一个配

ansible批量管理服务详解

在开始之前我们先试想一个场景,你的公司有成百上千台的服务器,这时候领导要求在所有服务器上都添加一个定时任务,或者是执行某个命令,你可能会说用xshell一个一个去连或者是编写一个shell脚本,但是如果过你经历过类似的事情,你一定可以体会到其中的痛苦,因为这么多服务器你用xshell去连的话工作量将变得特别大,但如果你是选择写一个脚本的话也会特别的麻烦,因为每执行一个不同的东西你就要去修改脚本的类容,而且批量脚本一般采用循环的方式去执行一些任务,如果节点太多的话,执行的效率会变得比较低,而批量管