前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用Ansible在KVM上创建虚拟机

用Ansible在KVM上创建虚拟机

作者头像
dhyuan
发布2022-05-30 14:19:43
7910
发布2022-05-30 14:19:43
举报
文章被收录于专栏:响应式编程

此文是对尝试 https://github.com/csmart/virt-infra-ansible 的记录。

我们的目标是用 Ansible 快速搭建出一个 miniCloud 环境,以方便以后部署基于 K8S 的各种生产力工具。虽然 VMware vSphere 很好用,但因为 lisence 及价格的因素,KVM 是最适合拿来使用的 Hypervisor。

在宿主机上需要以下软件:

  • Ansible
  • KVM
  • KVM 用户空间工具
  • SSH keys
  • Guest Image

可运行以下命令准备环境:

代码语言:javascript
复制
  # Create SSH key if you don't have one
  ssh-keygen

  # libvirtd
  sudo yum groupinstall -y "Virtualization Host"
  sudo systemctl enable --now libvirtd

  # Ansible
  sudo yum install -y epel-release
  sudo yum install -y python36
  pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple --user ansible

  # Other deps
  sudo yum install -y \
  git \
  genisoimage \
  libguestfs-tools-c \
  libosinfo \
  python3 \
  python3-libvirt \
  python3-lxml \
  python3-pip \
  libselinux-python3 \
  qemu-img \
  virt-install

国内用户为了使用 yum 时有更快的下载速度,可以设置 yum 国内镜像源。

代码语言:javascript
复制
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

pip 使用 -i https://pypi.tuna.tsinghua.edu.cn/simple 参数使用国内源。

确定要操作的网络接口及名称:

代码语言:javascript
复制
export NET_DEV=em1
sudo nmcli con |egrep -w "${NET_DEV}"
export NM_NAME=em1

通过 ip 命令创建网桥:

代码语言:javascript
复制
sudo ip link add name br0 type bridge
sudo ip addr add 192.168.1.10/24 dev br0
sudo ip link set dev em1 master br0 ; sudo ip addr del 192.168.1.10/24 dev em1 ; sudo ip link set br0 up

如果修改之后 ping baidu.com 不通,可以坚持一下路由表。确认是否有 default 路由、em1 是否还在路由表里等。

代码语言:javascript
复制
route -v
sudo ip route add default via 192.168.1.10 dev br0
sudo ip route del 192.168.1.0/24 dev em1

也可以用 nmci 创建网桥 br0 并把物理网卡 em1 插到网桥上。

代码语言:javascript
复制
sudo nmcli con add ifname br0 type bridge con-name br0
sudo nmcli con add type bridge-slave ifname "${NET_DEV}" master br0

也可以通过 brctl 创建网桥:

代码语言:javascript
复制
brctl addbr br0
brctl addif br0 em1

接下来就可以运行一下命令自动创建 KVM Guests 了。

代码语言:javascript
复制
ansible-playbook --limit kvmhost,simple ./virt-infra.yml

用virt-manager查看创建的guests。

Reference:

https://github.com/csmart/virt-infra-ansible

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 响应式编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
专用宿主机
专用宿主机(CVM Dedicated Host,CDH)提供用户独享的物理服务器资源,满足您资源独享、资源物理隔离、安全、合规需求。专用宿主机搭载了腾讯云虚拟化系统,购买之后,您可在其上灵活创建、管理多个自定义规格的云服务器实例,自主规划物理资源的使用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档