首页 > 其他分享 >自动化运维(十五)Ansible 实战之批量创建WEB服务器

自动化运维(十五)Ansible 实战之批量创建WEB服务器

时间:2024-04-11 09:29:54浏览次数:23  
标签:WEB 运维 CentOS 创建 虚拟机 Ansible 服务器 安装 模板

       前面我们学习了一些Ansible模块的知识,从这一块篇开始我们进入到 Ansible实战内容的学习,我们会根据实际应用中的一些案例来演示这些模块的综合应用。现在我们有这么一个需求:在esxi虚拟机192.168.110.2上创建5台web服务器,web 服务器配置为2核4G,50G硬盘,安装nginx服务器,安装git,服务器使用CentOS7 ,开通免密登陆,服务器ip采用静态IP,IP地址分配192.168.110.171-192.168.110.175。

我们进行简单的需求分析,这里我们需要在安装了esxi的虚拟服务器上虚拟出5台Web应用服务器,服务器使用Centos7操作系统,那么我们需要提供CentOS7的模板给Ansible,然后使用vsphere_guest模块和vmware_guest模块来创建5个Web应用服务器,并设置好相应的IP地址和安装好Nginx应用。

1、创建CentOS7虚拟机模版

我们还没有一个预先配置好的CentOS 7模板,我们有两种方式来创建这个模版,第一种就是手动创建模板,第二种是通过脚本来创建。

手动创建模板

现在我们先看的通过手动创建模版的过程,可以按照以下步骤创建一个:

  1. 在ESXi主机上手动创建一个新的虚拟机,并安装CentOS 7操作系统。

  2. 在新创建的虚拟机上进行任何所需的基本配置,如配置网络、安装VMware Tools等。

  3. 关闭虚拟机,并在ESXi主机上将其转换为模板。

一旦有了CentOS 7模板,我们就可以在playbook中引用它的名称:

guest_id: centos7_64Guest
脚本创建模版

如果你想在playbook中自动化整个过程,包括安装CentOS 7,你可以使用vmware_guest模块的cdrom参数来挂载CentOS 7的ISO镜像,并使用boot_order参数来设置从CD-ROM启动。然后,你可以使用boot_command参数来提供一个自动化安装CentOS 7的kickstart文件。

下面是一个使用kickstart文件自动安装CentOS 7的示例:

- name: Create virtual machines with CentOS 7 auto-installation
  vmware_guest:
    hostname: "{
  { esxi_host }}"
    username: "{
  { esxi_username }}"
    password: "{
  { esxi_password }}"
    validate_certs: no
    name: "{
  { vm_name_prefix }}{
  { item }}"
    datacenter: ha-datacenter
    folder: /
    hardware:
      num_cpus: "{
  { vm_cpu }}"
      memory_mb: "{
  { vm_memory }}"
    disk:
      - size_gb: "{
  { vm_disk_size }}"
        type: thin
        datastore: datastore1
    cdrom:
      - type: iso
        iso_path: "[datastore

标签:WEB,运维,CentOS,创建,虚拟机,Ansible,服务器,安装,模板
From: https://blog.csdn.net/benshu_001/article/details/137423183

相关文章

  • 自动化运维工具Ansible
    ansible主要的意义在于可以提高运维工作效率,降低成本提高准确度资料 Ansible中文权威指南离线安装wgethttps://github.com/ansible/ansible/archive/refs/tags/v2.16.5.tar.gztar-zxvfv2.16.5.tar.gzcdansible-v2.16.5pythonsetup.pyinstall主要配置ansibl......
  • Linux开发、运维常用命令个人心得总结
    1、lsls是“list”的缩写,。它是Linux系统中用于列出目录内容的标准命令。默认情况下,它会以简单的方式显示文件和目录的列表。-l:长格式显示。-a:显示所有文件,包括隐藏文件。2、cd用于改变当前工作目录的命令,cd命令后面通常跟着要切换到的目录的路径。cd..:返回上一级......
  • javaweb项目没有main方法?
    在写javaweb项目中忽然发现没有main方法的,没有入口怎么跑?其实项目是有main方法的,不需要我们编写代码,main方法在tomcat容器中。tomcat是运行在虚拟机之上的。Junit是有主函数的,就在junit框架源码里面。从main开始执行,反射运行各个testcase,然后结束。在一个基于JavaW......
  • Spring Maven项目添加web模块
    问题描述:IDEA新建的maven项目没有web模块,如何新增web模块?操作步骤:1、选中对应的模块名称,右键单击“OpenModuleSettings” 2、如果模块下②web存在,则按照图一步骤顺序,依次选择“+”,在Type单击web.xml,path路径为默认路径,如果想要修改,可以单击步骤⑤修改,否则,执行步骤⑥和⑦......
  • 创建一个简单的区块链,并使用 Flask 框架提供一个简单的 Web 接口来与区块链交互。
    目录前言一、代码展示二、代码注释1.简单的区块链模拟实现,这段代码定义了一个简单的区块链类,可以创建一个新的区块链,并能够添加新的区块到链上,同时获取最新的区块信息。这个模拟的区块链可以用于教学或演示区块链的基本概念。2.这段代码是一个简单的工作量证明(ProofofWo......
  • 后端开发之SpringBootWeb入门介绍及简单测试 2024详解
    SpringBoot介绍官网spring.ioSpring是最流行的Java框架Spring发展到今天已经形成了一种开发生态圈Spring提供了若干个子项目每个项目用于完成特定的功能企业开发框架之间的整合会很容易所以我们选择Spring全家桶基于基础的SpringFramework框架但是配置繁琐入门......
  • 运维系列(亲测有效):利用 PHPStuday 2018 集成化工具对Apache进行站点域名管理
    利用PHPStuday2018集成化工具对Apache进行站点域名管理利用PHPStuday2018集成化工具对Apache进行站点域名管理利用PHPStuday2018集成化工具对Apache进行站点域名管理第一步:第二步:第三步:第四步:第五步:利用PHPStuday2018集成化工具对Apache进行站点域......
  • CTFshow-Web入门模块-爆破
    CTFshow-Web入门模块-爆破by故人叹、web21考察点:burpsuite使用、自定义迭代器使用题目提供了字典,要求登录并提示了爆破,使用burpsuite抓包并操作:(1)用户名一般为admin,密码随意输,抓包并发送给爆破模块。可以看到Basic后有一段base64编码,解码得到用户名:密码的格式,证明我们之......
  • python 使用waitress替代flask自带的web服务器
    首席引入依赖安装waitrsspipintsllwaitress 然后在flask程序内引入依赖使用server()函数代替app.run()函数启动时,直接pythonxxx.py即可fromwaitressimportservefromflaskimportFlaskapp=Flask(__name__)@app.route('/')defhello_world():return'HelloWor......
  • nodejs + ts + nodemon + webpack 代码热更新
    依赖:npminodemonwebpackwebpack-clits-loadertypescript//webpack.config.jsimport{defaultaswebpack}from"webpack";importnodeExternalsfrom"webpack-node-externals";constplugins=[newCleanWebpackPlugin({dangero......