如何升级由Ubuntu/Debian或CentOS Linux驱动的LXD VM
时间:2020-01-09 10:39:49 来源:igfitidea点击:
在CentOS Linux 7和Debian/Ubuntu Linux上有几十个虚拟机。
如何使用Ansible工具自动或按需升级所有这些虚拟机VM?
有两种方法可以升级LXD(Linux容器)VM。
两种方法都取决于使用/usr/bin/lxc命令。
方法1:使用shell脚本更新
语法非常简单:
/usr/bin/lxc exec vmNameHere -- command /usr/bin/lxc exec vmNameHere -- /usr/bin/apt-get -y upgrade /usr/bin/lxc exec vmNameHere -- /usr/bin/apt-get -y upgrade /usr/bin/lxc exec vmNameHere -- /usr/bin/yum -y update
接下来,您可以创建如下的shell脚本:
#!/bin/bash # Purpose: Run given command inside the LXD vm # Note: Must be run from host. Only tested on Ubuntu 16.04 LTS # Author: { https://www.theitroad.local } under GPL v2.x+ # ---------------------------------------------------------------- cmd="$@" for i in vm1 vm2 vm3 vm10 do echo "[*** $i ***]" /usr/bin/lxc exec $i -- $cmd done
现在您要做的就是为基于Debian或Ubuntu Linux的vm运行命令,即传递apt-get命令/apt命令来更新VM:
$ ~/bin/script-name /usr/bin/apt-get update $ ~/bin/script-name /usr/bin/apt-get -y upgrade
如果您使用的是基于CentOS 7的VM,请通过yum命令:
$ ~/bin/script-name /usr/bin/apt-get /usr/bin/yum -y update
方法2使用Ansible devops/sysadmin自动化工具更新LXD VM
您可以按以下方式创建一个lxd-update.yml ansible剧本(Playbook)文件:
# # Update host running on Debian/Ubuntu # - name: Updating host using apt apt: update_cache: yes upgrade: dist # # Now update VMs powered by Debian/Ubuntu Linux # - name: Run lxc to update debian/ubuntu vms repo command: /usr/bin/lxc exec {{ item }} -- /usr/bin/apt-get -y update with_items: - ubuntuvm1 - debianvm2 - ubuntuvm3 - name: Run lxc to upgrade debian/ubuntu vms pacakges command: /usr/bin/lxc exec {{ item }} -- /usr/bin/apt-get -y upgrade with_items: - ubuntuvm1 - debianvm2 - ubuntuvm3 # # Now update VMs powered by CentOS 7 Linux # - name: Run lxc to upgrade centos vms command: /usr/bin/lxc exec {{ item }} -- /usr/bin/yum -y update with_items: - centosvm4 - centosvm5 - centosvm6
您可以使用ansible-playbook命令如下运行它:
$ ansible-playbook -i my-hosts lxd-update.yml
最后一种方法易于使用且易于扩展。
因此,我建议您使用Ansible手册来更新LXD驱动的VM。