郑州网站商城建设,wordpress显示大图,学校网站资源建设,百度推广如何获取精准的客户写在前面 使用过滤器检查、验证和操作包含网络信息的变量理解不足小伙伴帮忙指正 傍晚时分#xff0c;你坐在屋檐下#xff0c;看着天慢慢地黑下去#xff0c;心里寂寞而凄凉#xff0c;感到自己的生命被剥夺了。当时我是个年轻人#xff0c;但我害怕这样生活下去#xf…写在前面 使用过滤器检查、验证和操作包含网络信息的变量理解不足小伙伴帮忙指正 傍晚时分你坐在屋檐下看着天慢慢地黑下去心里寂寞而凄凉感到自己的生命被剥夺了。当时我是个年轻人但我害怕这样生活下去衰老下去。在我看来这是比死亡更可怕的事。--------王小波 收集和处理网络信息
标准 setup 模块可在多个 play 开头自动收集事实从每个受管主机上收集大量与网络相关的信息。
常用的网络事实
ansible_facts[‘dns’][‘nameservers’]ansible_facts[‘domain’]ansible_facts[‘all_ipv4_addresses’]ansible_facts[‘all_ipv6_addresses’]ansible_facts[‘fqdn’]ansible_facts[‘hostname’]
查看所有清单主机的完全限定名
---
- name: net_workhosts: alltasks:- name: printdebug:msg: {{ ansible_facts[fqdn] }}
$执行测试
$ ansible-playbook network.yaml
.........
TASK [print] ***************************************************************************************************************
ok: [servera] {msg: servera.lab.example.com
}
ok: [serverb] {msg: serverb.lab.example.com
}
ok: [serverc] {msg: serverc.lab.example.com
}
ok: [serverd] {msg: serverd.lab.example.com
}
ok: [servere] {msg: servere.lab.example.com
}
ok: [serverf] {msg: serverf.lab.example.com
}网络信息过滤器
ipaddr 过滤器可用于处理和验证网络相关的事实
检查IP地址的语法转换VLSN子网掩码为CIDR子网执行子网数学运算在网络范围内找到下一个可用地址
使用要求RHEL8系统使用ipaddr过滤器需要安装 python3-netaddr 软件包该包提供Python模块netaddr。
[studentworkstation laomalS sudo yum install -y python3-netaddripaddr 过滤器提供了操作和验证与网络相关的事实功能。
可以用于检查 IP 地址的语法从 VLSN 子网掩码转换为 CIDR 子网前缀表示法执行子网计算查找网络范围内的下一个可用地址等。
在最简单的形式中不带参数的 ipaddr 过滤器接受单个值。如果值是 IP 地址则过滤器返回 IP 地址如果不是IP 地址则过滤器将返回 False。
如果该值为有效的P地址则过滤器将返回地址。如果该值不是有效的IP地址则过滤器返回False。
$ ansible servera -m debug -a msg{{ 175.25.250.50 | ipaddr}}
servera | SUCCESS {msg: 175.25.250.50
}
$ ansible servera -m debug -a msg{{ 175.25.250.50/24 | ipaddr}}
servera | SUCCESS {msg: 175.25.250.50/24
}
$ ansible servera -m debug -a msg{{ 175.25.250.500/24 | ipaddr}}
servera | SUCCESS {msg: false
}ipaddr过滤器接受参数值
如果该值包涵有效的IP地址则返回有效的IP地址。如果所有项目均无效则返回一个空列表。
$ ansible servera -m debug -a msg{{ 175.25.250.50/24 | ipaddr(netmask)}}
servera | SUCCESS {msg: 255.255.255.0
}
$ipaddr 过滤器接受以下选项address验证输入值是否为有效的 IP 地址如果输入中包含网络前缀其会被剥离。net验证输入值是否为网络范围并以 CIDR 格式返回。host确保 IP 地址符合等效的 CIDR 前缀格式。prefix验证输入主机是否满足主机/前缀或 CIDR 格式并返回前缀。host/prefix验证输入是否为网络/前缀格式。public 或 private验证输入 IP 地址或网络范围是否由 IANA 分别预留为公共或私有的范围内。size将输入网络范围转换为该范围内的 IP 地址数。n任何整数。将网络范围转换为该范围内的第 N 个元素。负数返回从最后一个数的第 n 个元素。network、netmask、broadcast验证输入主机是否满足主机/前缀或CIDR格式并将其分别转换为网络地址、子网掩码或广播地址。subnet验证输入主机是否满足主机/前缀或 CIDR 格式并返回包含该主机的子网。ipv4 ipv6验证输入是否有效的网络范围并将它们分别转换为 ipv4 和 ipv6 格式。
$ ansible servera -m debug -a msg{{ 175.25.250.50/24 | ipaddr(ipv6)}}
servera | SUCCESS {msg: ::ffff:175.25.250.50/120
}
$ ansible servera -m debug -a msg{{ 175.25.250.50/24 | ipaddr(subnet)}}
servera | SUCCESS {msg: 175.25.250.0/24
}
$ ansible servera -m debug -a msg{{ 175.25.250.50/24 | ipaddr(size)}}
servera | SUCCESS {msg: 256
}
使用插件收集网络信息
查找 DNS 信息
dig 命令针对 DNS 服务进行查询并返回生成的记录。dig 需要在控制节点上安装 python3-dns 软件包。
$ ansible servera -m debug -a msg{{ lookup(dig,servera.lab.example.com)}}
servera | SUCCESS {msg: 172.25.250.10
}
$ ansible servera -m debug -a msg{{ lookup(dig,example.com)}}
servera | SUCCESS {msg: 172.25.254.254
}
$ ansible servera -m debug -a msg{{ lookup(dig,com)}}
servera | SUCCESS {msg: NXDOMAIN
}dig 查找 DNS 服务器中是否存在提供 FQDN 的 A 记录
$ ansible servera -m debug -a msg{{ lookup(dig,example.com, qtypeA)}}
servera | SUCCESS {msg: 10 classroom.example.com.
}
$ ansible servera -m debug -a msg{{ lookup(dig,example.com, )}}
servera | SUCCESS {msg: 172.25.254.254
}一个 Demo
[studentworkstation netfilters]$ cat ./tasks/main.yml
# Complete each task by setting the fact as the expected value.
# Replace ellipsis by the appropriate filter usage.
# All task but the last one should be using the ipaddr filter.
# Use the lookup filter with the dig command for the last task# Tasks make use of th gathered fact default_ipv4, and its keys address, network and netmask- name: Task 1- Verify the ansible_default_ipv4.addresss provided address is correctly formatted.set_fact:server_address: {{ ansible_facts.default_ipv4.address | ipaddr }}
- name: Task 2- Check server_address valueassert:that: server_address ansible_facts.default_ipv4.addressfail_msg: server_address must be {{ ansible_facts.default_ipv4.address }}, but is {{ server_address }}- name: Task 3- Obtain the DNS name associated to the server IP address (reverse DNS)set_fact:address_dns: {{ server_address | ipaddr(revdns) }}
- name: Task 4- Check address_dns valueassert:that: address_dns 10.250.25.172.in-addr.arpa.fail_msg: address_dns must be 10.250.25.172.in-addr.arpa., but is {{ address_dns }}- name: Task 5- Obtain servers network/netmaskset_fact:net_mask: {{ ansible_facts.default_ipv4.network }}/{{ ansible_facts.default_ipv4.netmask }}
- name: Task 6- Check net_mask valueassert:that: net_mask 172.25.250.0/255.255.255.0fail_msg: net_mask must be 172.25.250.0/255.255.255.0, but is {{ net_mask }}- name: Task 7- Transform the network/netmask to the CIDR formatset_fact:cidr: {{ net_mask | ipaddr(net) }}
- name: Task 8- Check cidr valueassert:that: cidr 172.25.250.0/24fail_msg: cidr must be 172.25.250.0/24, but is {{ cidr }}- name: Task 9- Verify the server address actualy belong to the network/maskset_fact:address_in_range: {{ server_address | ipaddr(net_mask) }}
- name: Task 10- Check address_in_range valueassert:that: address_in_range server_addressfail_msg: address_in_range must be {{ server_address }}, but is {{ address_in_range }}- name: Task 11- Obtain the broadcast address associated to the CIDRset_fact:broadcast: {{ cidr | ipaddr(broadcast) }}
- name: Task 12- Check broadcast valueassert:that: broadcast 172.25.250.255fail_msg: broadcast must be 172.25.250.255, but is {{ broadcast }}- name: Task 13- DIG for the MX record of the domain example.comset_fact:dig_record: {{ lookup( dig, example.com., qtypeMX) }}
- name: Task 14- Check dig_record valueassert:that: dig_record 10 classroom.example.com.fail_msg: dig_record must be 10 classroom.example.com., but is {{ dig_record }}
[studentworkstation data-netfilters]$ ansible-playbook site.ymlPLAY [Tasks for netfilter guided exercise] *****************************************************************************TASK [Gathering Facts] *************************************************************************************************
ok: [servera.lab.example.com]TASK [netfilters : Task 1- Verify the ansible_default_ipv4.addresss provided address is correctly formatted.] ********
ok: [servera.lab.example.com]TASK [netfilters : Task 2- Check server_address value] ***************************************************************
ok: [servera.lab.example.com] {changed: false,msg: All assertions passed
}TASK [netfilters : Task 3- Obtain the DNS name associated to the server IP address (reverse DNS)] **********************
ok: [servera.lab.example.com]TASK [netfilters : Task 4- Check address_dns value] ******************************************************************
ok: [servera.lab.example.com] {changed: false,msg: All assertions passed
}TASK [netfilters : Task 5- Obtain servers network/netmask] ************************************************************
ok: [servera.lab.example.com]TASK [netfilters : Task 6- Check net_mask value] *********************************************************************
ok: [servera.lab.example.com] {changed: false,msg: All assertions passed
}TASK [netfilters : Task 7- Transform the network/netmask to the CIDR format] *******************************************
ok: [servera.lab.example.com]TASK [netfilters : Task 8- Check cidr value] *************************************************************************
ok: [servera.lab.example.com] {changed: false,msg: All assertions passed
}TASK [netfilters : Task 9- Verify the server address actualy belong to the network/mask] *******************************
ok: [servera.lab.example.com]TASK [netfilters : Task 10- Check address_in_range value] ************************************************************
ok: [servera.lab.example.com] {changed: false,msg: All assertions passed
}TASK [netfilters : Task 11- Obtain the broadcast address associated to the CIDR] ***************************************
ok: [servera.lab.example.com]TASK [netfilters : Task 12- Check broadcast value] *******************************************************************
ok: [servera.lab.example.com] {changed: false,msg: All assertions passed
}TASK [netfilters : Task 13- DIG for the MX record of the domain example.com] *****************************************
ok: [servera.lab.example.com]TASK [netfilters : Task 14- Check dig_record value] ******************************************************************
ok: [servera.lab.example.com] {changed: false,msg: All assertions passed
}PLAY RECAP *************************************************************************************************************
servera.lab.example.com : ok15 changed0 unreachable0 failed0 skipped0 rescued0 ignored0[studentworkstation data-netfilters]$ cat site.yml
- name: Tasks for netfilter guided exercisehosts: servera.lab.example.comroles:- role: netfilters[studentworkstation data-netfilters]$博文参考
《DO447》 文章转载自: http://www.morning.mfmbn.cn.gov.cn.mfmbn.cn http://www.morning.gqksd.cn.gov.cn.gqksd.cn http://www.morning.kyfrl.cn.gov.cn.kyfrl.cn http://www.morning.mjytr.cn.gov.cn.mjytr.cn http://www.morning.zfcfx.cn.gov.cn.zfcfx.cn http://www.morning.hrhwn.cn.gov.cn.hrhwn.cn http://www.morning.rcntx.cn.gov.cn.rcntx.cn http://www.morning.tymwx.cn.gov.cn.tymwx.cn http://www.morning.qjrjs.cn.gov.cn.qjrjs.cn http://www.morning.tkztx.cn.gov.cn.tkztx.cn http://www.morning.mqbdb.cn.gov.cn.mqbdb.cn http://www.morning.dblfl.cn.gov.cn.dblfl.cn http://www.morning.zbpqq.cn.gov.cn.zbpqq.cn http://www.morning.kbqbx.cn.gov.cn.kbqbx.cn http://www.morning.ubpsa.cn.gov.cn.ubpsa.cn http://www.morning.nndbz.cn.gov.cn.nndbz.cn http://www.morning.brxzt.cn.gov.cn.brxzt.cn http://www.morning.npmcf.cn.gov.cn.npmcf.cn http://www.morning.dkfrd.cn.gov.cn.dkfrd.cn http://www.morning.pznnt.cn.gov.cn.pznnt.cn http://www.morning.fnfhs.cn.gov.cn.fnfhs.cn http://www.morning.fesiy.com.gov.cn.fesiy.com http://www.morning.phlwj.cn.gov.cn.phlwj.cn http://www.morning.ndhxn.cn.gov.cn.ndhxn.cn http://www.morning.qgcfb.cn.gov.cn.qgcfb.cn http://www.morning.cxryx.cn.gov.cn.cxryx.cn http://www.morning.nqdkx.cn.gov.cn.nqdkx.cn http://www.morning.hwlk.cn.gov.cn.hwlk.cn http://www.morning.xysdy.cn.gov.cn.xysdy.cn http://www.morning.znknj.cn.gov.cn.znknj.cn http://www.morning.rwnx.cn.gov.cn.rwnx.cn http://www.morning.yydeq.cn.gov.cn.yydeq.cn http://www.morning.rqhdt.cn.gov.cn.rqhdt.cn http://www.morning.xdpjf.cn.gov.cn.xdpjf.cn http://www.morning.sqfrg.cn.gov.cn.sqfrg.cn http://www.morning.kaakyy.com.gov.cn.kaakyy.com http://www.morning.mglqf.cn.gov.cn.mglqf.cn http://www.morning.nqxdg.cn.gov.cn.nqxdg.cn http://www.morning.bxbnf.cn.gov.cn.bxbnf.cn http://www.morning.cbndj.cn.gov.cn.cbndj.cn http://www.morning.mgmyt.cn.gov.cn.mgmyt.cn http://www.morning.shsh1688.com.gov.cn.shsh1688.com http://www.morning.dbqcw.com.gov.cn.dbqcw.com http://www.morning.drqrl.cn.gov.cn.drqrl.cn http://www.morning.bpmtr.cn.gov.cn.bpmtr.cn http://www.morning.cfrz.cn.gov.cn.cfrz.cn http://www.morning.ycmpk.cn.gov.cn.ycmpk.cn http://www.morning.ywqsk.cn.gov.cn.ywqsk.cn http://www.morning.tgcw.cn.gov.cn.tgcw.cn http://www.morning.zdqsc.cn.gov.cn.zdqsc.cn http://www.morning.kljhr.cn.gov.cn.kljhr.cn http://www.morning.zwndt.cn.gov.cn.zwndt.cn http://www.morning.ljdhj.cn.gov.cn.ljdhj.cn http://www.morning.hlrtzcj.cn.gov.cn.hlrtzcj.cn http://www.morning.kgcss.cn.gov.cn.kgcss.cn http://www.morning.tturfsoc.com.gov.cn.tturfsoc.com http://www.morning.nrll.cn.gov.cn.nrll.cn http://www.morning.rstrc.cn.gov.cn.rstrc.cn http://www.morning.kgrwh.cn.gov.cn.kgrwh.cn http://www.morning.yqgny.cn.gov.cn.yqgny.cn http://www.morning.pfnrj.cn.gov.cn.pfnrj.cn http://www.morning.wnnts.cn.gov.cn.wnnts.cn http://www.morning.smggx.cn.gov.cn.smggx.cn http://www.morning.pkdng.cn.gov.cn.pkdng.cn http://www.morning.ltzkk.cn.gov.cn.ltzkk.cn http://www.morning.wmmjw.cn.gov.cn.wmmjw.cn http://www.morning.ejknty.cn.gov.cn.ejknty.cn http://www.morning.qmqgx.cn.gov.cn.qmqgx.cn http://www.morning.mgfnt.cn.gov.cn.mgfnt.cn http://www.morning.bkqdg.cn.gov.cn.bkqdg.cn http://www.morning.llsrg.cn.gov.cn.llsrg.cn http://www.morning.zrks.cn.gov.cn.zrks.cn http://www.morning.qxwwg.cn.gov.cn.qxwwg.cn http://www.morning.qmfhh.cn.gov.cn.qmfhh.cn http://www.morning.qwpdl.cn.gov.cn.qwpdl.cn http://www.morning.bwkzn.cn.gov.cn.bwkzn.cn http://www.morning.ptqbt.cn.gov.cn.ptqbt.cn http://www.morning.xpmwt.cn.gov.cn.xpmwt.cn http://www.morning.kqkmx.cn.gov.cn.kqkmx.cn http://www.morning.gcjhh.cn.gov.cn.gcjhh.cn