主机清单:

2024-08-22 16:36
文章标签 主机 清单

本文主要是介绍主机清单:,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

主机清单:

主机组 IP地址

[root@test7 opt]# vim /etc/ansible/hosts
[xy102]
192.168.60.40 ansible_port=22 ansible_user=root ansible_password=123

ansible_port=22 #目标主机的端口

ansible_user=root #登录目标主机的用户名

ansible_password=123 #登录目标主机的密码

#批量匹配IP地址
[root@test7 opt]# vim /etc/ansible/hosts
192.168.60.[0:9]0
ansible_port=22 ansible_user=root ansible_password=123
组嵌套
[web]
192.168.60.80
[web1]
192.168.60.90
[web:children]
web
web1

ansible的脚本 playbook(剧本)

playbook的组成

1、tsaks 任务,每一个tasks就是一个模块

2、variables 变量,存储和传递数据,自定义变量,也可以是全局变量,也可以是脚本外传参

3、Templates 模块,用于生成配置文件和多任务的编排。

4、handlers 处理器,用于满足某些条件时触发的操作,一般用于重启等操作

5、roles 角色,组织和封装剧本的过程,变量,模板,处理器,组合成一个可用的单元。

[root@test7 opt]# vim test1.yaml
- name: first play
#定义这个剧本的名称,可以不写gather_facts: false
#表示在执行剧本之前是否收集目标主机的信息,false表示不收集,可以加快执行速度,如果不写默认收集。hosts: 192.168.60.80
#指定目标主机,可以是组名,也可以是IP地址remote_user: root
#在目标主机的执行用户tasks:- name: test connection
#定义一个任务的名称,可以自定义ping:
#ping就是模块的名称- name: close selinuxcommand: '/sbin/setenforce 0'ignore_errors: True
#如果在任务执行中报错,返回码非0,报错,task就会停止,ignore_errors: True就会忽略错误,继续执行下一个任务。- name: close firewalldservice: name=firewalld state=stopped
#调用service模块,关闭防火墙- name: install httpdyum: name=httpd state=latest
#latest,安装当前库中的最新版本的软件- name: interviewshell: echo "this is httpd" > /var/www/html/index.html
#指定shell模块,修改默认的访问页面notify: restart httpd
# ansible在执行完任务之后不会立即执行重启,通过notify指令对应的名称传给触发器,让触发器在任务的最后执行重启,避免在任务中多次执行重启,影响执行的 效率。handlers:- name: restart httpdservice: name=httpd state=restarted
#执行test1.yaml脚本
[root@test7 opt]# ansible-playbook test1.yaml 

安装nginx,传一个配置文件到目标主机,修改默认端口8080,访问页面的内容 this is nginx 安装方式yaml

[root@test7 opt]# vim nginx.yaml
- name: first playgather_facts: falsehosts: 192.168.60.90remote_user: roottasks:- name: test connectionping:- name: close selinuxcommand: '/sbin/setenforce 0'ignore_errors: True- name: close firewalldservice: name=firewalld state=stopped- name: install nginxyum: name=nginx state=latest- name: interviewshell: echo "this is nginx" > /usr/share/nginx/html/index.html- name: nginx.confcopy: 'src=/opt/nginx.conf dest=/etc/nginx/'notify: restart nginx
​handlers:- name: restart nginxservice: name=nginx state=restarted
​
[root@test7 opt]# ansible-playbook nginx.yaml 

定义变量,引用变量:

脚本当中定义,以及脚本外传参

[root@test7 opt]# vim test2.yaml              
- name: second playhosts: 192.168.60.90remote_user: rootvars:#定义变量groupname: mysqlusername: nginx1tasks:- name: create groupgroup:name: "{{ groupname }}"system: yesgid: 306- name: create useruser:name: "{{ username }}"uid: 306group: "{{ groupname }}"[root@test7 opt]# ansible-playbook test2.yaml
​
#在脚本外面传参
[root@test7 opt]# ansible-playbook test2.yaml -e 'groupname=test1 username=test2'

总结:脚本外的参数比脚本中的参数优先级高

#检查脚本中有没有语法错误
[root@test7 opt]# ansible-playbook test2.yaml --syntax-check
​
#检测脚本中有几个任务
[root@test7 opt]# ansible-playbook test2.yaml --list-task
​
#检测脚本对哪些主机生效
[root@test7 opt]# ansible-playbook test2.yaml --list-hosts
​
#执行全局的部分和指定执行的部分
[root@test7 opt]# ansible-playbook test2.yaml --start-at-task='create user' -e 'username=test3 groupname=nginx'

[root@test7 opt]# vim test2.yaml 
​
- name: second playhosts: 192.168.60.90remote_user: dnbecome: yes
#先用普通用户执行,但是需要切换到其他用户,列如切换到管理员become_user: rootvars:groupname: mysqlusername: nginx1

满足条件的执行,不满足的跳过

[root@test7 opt]# vim test3.yaml
#如何在脚本中实现条件判断:
#when 满足条件的主机执行,不满足的跳过。
- name: this is ifhosts: allremote_user: roottasks:- name: test whendebug: msg='条件满足'
#debug相当于echo    echo "条件满足"when: ansible_default_ipv4.address == "192.168.60.90"

取反

[root@test7 opt]# vim test3.yaml
#如何在脚本中实现条件判断:
#when 满足条件的主机执行,不满足的跳过。
- name: this is ifhosts: allremote_user: roottasks:- name: test whendebug: msg='条件满足'
#debug相当于echo    echo "条件满足"when: ansible_default_ipv4.address != "192.168.60.90"

with_items:

[root@test7 opt]# vim test4.yaml
#循环结构:ansible有多种循环方式,一般都命名为with_items,定义循环的内容。
#with_item 单循环输出:
- name: item testhosts: 192.168.60.80remote_user: rootgather_facts: falsetasks:- debug:msg: "{{ item }}"with_items:- [a,b,c,d]- [1,2,3,4]with_list
#输出item的值,with_items:a b c d 依次传入。

with_list整个列表作为一个整体,继续输出

[root@test7 opt]# vim test4.yaml
#循环结构:ansible有多种循环方式,一般都命名为with_items,定义循环的内容。
#with_item 单循环输出:
- name: item testhosts: 192.168.60.80remote_user: rootgather_facts: falsetasks:- debug:msg: "{{ item }}"with_list:- [a,b,c,d]- [1,2,3,4]
#输出item的值,with_items:a b c d 依次传入。

wiht_together,作为整体,一列一列,两两配对输出

[root@test7 opt]# vim test4.yaml
#循环结构:ansible有多种循环方式,一般都命名为with_items,定义循环的内容。
#with_item 单循环输出:
- name: item testhosts: 192.168.60.80remote_user: rootgather_facts: falsetasks:- debug:msg: "{{ item }}"with_together:- [a,b,c,d]- [1,2,3,]
#输出item的值,with_items:a b c d 依次传入。

with_nested:每一层都是遍历执行一般,输出结果

[root@test7 opt]# vim test4.yaml
#循环结构:ansible有多种循环方式,一般都命名为with_items,定义循环的内容。
#with_item 单循环输出:
- name: item testhosts: 192.168.60.80remote_user: rootgather_facts: falsetasks:- debug:msg: "{{ item }}"with_nested:- [a,b,c,d]- [1,2,3,]
#输出item的值,with_items:a b c d 依次传入。

条件判断,主机的ip

才会执行性,一次性创建4个文件,/opt/a /opt/b /opt/c /opt/d 循环 with_items

[root@test7 opt]# vim test5.yaml
- name: this is ifhosts: allremote_user: roottasks:- name: test whenfile:path: "{{ item }}"state: touchwith_items: [/opt/a,/opt/b,/opt/c,/opt/d]when: ansible_default_ipv4.address == "192.168.60.90"[root@test7 opt]# ansible-playbook test5.yaml 
[root@test9 opt]# ls                        
a        b        c        d    

这篇关于主机清单:的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1096807

相关文章

浅谈主机加固,六种有效的主机加固方法

在数字化时代,数据的价值不言而喻,但随之而来的安全威胁也日益严峻。从勒索病毒到内部泄露,企业的数据安全面临着前所未有的挑战。为了应对这些挑战,一种全新的主机加固解决方案应运而生。 MCK主机加固解决方案,采用先进的安全容器中间件技术,构建起一套内核级的纵深立体防护体系。这一体系突破了传统安全防护的局限,即使在管理员权限被恶意利用的情况下,也能确保服务器的安全稳定运行。 普适主机加固措施:

实例:如何统计当前主机的连接状态和连接数

统计当前主机的连接状态和连接数 在 Linux 中,可使用 ss 命令来查看主机的网络连接状态。以下是统计当前主机连接状态和连接主机数量的具体操作。 1. 统计当前主机的连接状态 使用 ss 命令结合 grep、cut、sort 和 uniq 命令来统计当前主机的 TCP 连接状态。 ss -nta | grep -v '^State' | cut -d " " -f 1 | sort |

【虚拟化】AIO主机安装PVE8,配置网络,安装win11(virtio,qcow2,scsi,oobe,adk)

【虚拟化】AIO主机安装PVE8,配置网络,安装win11(virtio,qcow2,scsi,oobe,adk) 文章目录 1、ESXI vs PVE,AIO主机系统二选一2、PVE网络配置(DNS,换源,网卡,https,概览)3、win11虚拟化配置(virtio,raw,qcow2)附,域名解析,rocky9.4,黑群晖 1、ESXI vs PVE,AIO主机系统二选

虚拟机ubuntu与主机共享文件夹

现在主机(windows)上新建一个共享文件夹 打开虚拟机 按下面操作打开共享文件夹   进入虚拟机的系统    cd /mnt/hgfs 如果报错 可以按下面的解决   挂载一下  sudo mount -t fuse.vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other 如果显示不存在这个文件夹  我们可以去自己创建一个 cd /mnt

Linux Ubuntu 能PING IP但不能PING主机域名的解决方法

------------------------------------------------------------------------------- ------------------------------------------------------------------------------- vi /etc/nsswitch.conf hosts: file

查看当前主机的硬盘是固态硬盘还是机械硬盘

windows主机下查看硬盘类型方法: 打开dos界面,输入 powershell进入powershell界面 在PowerShell窗口中,输入 Get-PhysicalDisk 命令并按回车。 发现MediaType下面的值为HDD,即为机械硬盘,如果是固态硬盘,则为SSD

简洁直白的github快速入门教程(云主机)

如果你不是云主机,也可以使用本地的linux,这里不提供windows的解决方案! 1. 在云主机上安装 Git 首先,确保你的云主机上安装了 Git。你可以使用以下命令来安装它: # 对于 Debian/Ubuntu 系统sudo apt-get updatesudo apt-get install git# 对于 CentOS/RHEL 系统sudo yum install git

【主机入侵检测】开源安全平台Wazuh之Wazuh Server

引言 Wazuh是一个开源的、免费的企业级安全监控解决方案,专注于威胁检测、完整性监控、事件响应和合规性。它由部署在受监控系统的端点安全代理和管理服务器组成,服务器收集并分析代理收集的数据。Wazuh支持多平台,包括Windows、Linux、macOS、HP-UX、Solaris和AIX,能够跨场所、虚拟化、容器化和基于云的环境保护工作负载 。 目录 1 介绍 2 Wazuh

Windows 欺骗主机 Burn-In 的自动化工具

Sinon 是一款开源的模块化工具,用于自动测试基于 Windows 的欺骗主机。 它旨在降低大规模编排欺骗主机的难度,同时通过生成功能实现多样性和随机性。 Sinon 旨在通过执行模拟实际用户活动的各种操作来自动设置欺骗主机。 目标是创建一个可以欺骗潜在入侵者的逼真环境。 Sinon 的模块化和可配置特性允许轻松调整和随机化,使每次部署都独一无二。 Sinon 是一款模块化

【重点必读】|《商用密码随机抽查事项清单》要点解读与应对策略

近期,国家密码管理局发布了《商用密码随机抽查事项清单(2024年版)》公告,抽查类别包括商用密码检测和商用密码应用、电子认证服务使用密码、电子政务电子认证服务。其中抽查清单序号3的抽查类别为商用密码应用与应用安全息息相关,要求使用国密算法(SM1、SM2、SM3、SM4、SM7、SM9、ZUC等),并采取必要的密码安全防护措施,并防止数据泄露、篡改等。 主要抽查内容