前面我们学习了一些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模板,我们有两种方式来创建这个模版,第一种就是手动创建模板,第二种是通过脚本来创建。
手动创建模板
现在我们先看的通过手动创建模版的过程,可以按照以下步骤创建一个:
-
在ESXi主机上手动创建一个新的虚拟机,并安装CentOS 7操作系统。
-
在新创建的虚拟机上进行任何所需的基本配置,如配置网络、安装VMware Tools等。
-
关闭虚拟机,并在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