栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

openstack底层提取所有虚拟机IP和其uuid、openstack底层提取所有虚拟机的所在宿主机

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

openstack底层提取所有虚拟机IP和其uuid、openstack底层提取所有虚拟机的所在宿主机

文章目录
  • 说明
  • dashboard
    • ip名称对应宿主机
    • 虚拟机uuid
  • 底层命令获取
    • 之前的脚本
    • 获取ip和其uuid
    • 获取IP所在宿主机
      • 定位宿主机命令
      • 脚本代码准备测试
      • 脚本代码终版
      • 最终信息提取完成展示

说明
  • 需求

    • 1、获取所有表的ip和期uuid【以底层为准】
    • 2、获取所有IP的所在宿主机【以底层为准】
  • 实现方式有2种

    • 1、dashboard里面可以查看,然后一台一台的复制【使用少量虚拟机】
    • 2、底层跑脚本获取【适合多虚拟机】
dashboard ip名称对应宿主机

登录dashboard进入到admin域,里面就可以看到虚拟机的宿主机。

虚拟机uuid

点击名称,进入到详细,里面的id就是虚拟机的uuid

底层命令获取 之前的脚本

我最开始获取这个的时候,用的是下面的脚本,获取这些本来是简简单单的,我也不知道我为啥写这么难理解的一个脚本。。。。下面感兴趣的可以自行研究一下,我这不用这个脚本了,用更简单的方法。。。

[root@node-1 ccx]# cat uuid.sh 
#!/bin/bash
if [ $# -eq 0 ] ;then
        echo "Usage: /root/iplist.txt"
        elif [ -f $1 ] ; then
                for ip in `cat $1` ; do
                        name1=`ssh root@$ip virsh list --all | grep ins | awk '{print $2,$3,$4}'`
                        name2=`ssh root@$ip virsh list --all | grep ins | awk '{print $2}'`
                        echo "$name2" >> /root/ccx/uuid2.log
                        name3=`cat /root/ccx/uuid2.log`
                        ipname=`ssh root@$ip hostname`
                        echo -e "$ipnamen$name1"
                done
                array=($name2)
                echo ${array[*]}
                for leng in ${array[*]} ; do
                        #echo $leng
                        uuid=`ssh root@$ip virsh domuuid $leng`
                        echo "$leng $uuid" >> /root/ccx/uuid.log | awk '$1 ~ /ins/{print $1,$2,$3,$4}'
                done
                        cat /root/ccx/uuid.log
                        #addip=`cat /root/ccx/uuid.log | awk '{print $2}'`
                for uuip in  $addip ; do
                        ywip=`nova show $uuip | grep network | awk '{print $5}'`
                        echo "$uuip $ywip"
                done
                        > /root/ccx/uuid.log
        else
                echo "Input file not found"
fi
[root@node-1 ccx]# 
获取ip和其uuid
  • 登录控制节点,执行环境变量以后
    执行:nova list --all 就会列出所有的虚拟机和其uuid【如果不加–all,shutdown状态的不会被列出】
  • uuid和ip都有了,就直接拷贝出来呗!
    再excel中全部信息在一行,我们可以用分列-分割符号来分割


    然后自己要哪些就留哪些嘛,不要的删了就是了
获取IP所在宿主机 定位宿主机命令
  • 登录控制节点,执行环境变量以后
    执行:nova show uuid 就会列出该虚拟机的详细信息,宿主机信息如下

  • 其实我们提取宿主机一般要和ip一起提【严谨的态度】,免得出错,方法1
    要速度的话我们可以直接用下面方法来一起获取2个值了,然后导出到excel就好【使用不多的情况】,这种就是多条件筛选嘛

  • 然后分别通过awk来提取嘛【一定要先测试好单条命令,能正确获取且只获取到一个值(通过修改下面grep后面的值实现,每个版本的openstack过滤条件一般都不会一样)】
    注:下面ip有修改。

#提取ip
[root@node-2 ccx]# nova show 591f918c-0df1-46cf-8081-f66ab76ddd | grep network|awk '{print $5}'
1.23.16.39
[root@node-2 ccx]# 
# 提取宿主机
[root@node-2 ccx]# nova show 591f918c-0df1-46-8081-f66a80b76ddd | grep hostname | awk '{print $4}'
node-20.domain.tld
[root@node-2 ccx]# 
脚本代码准备测试
  • sh脚本
    之前脚本那么多行实现的功能和我下面是一样的,所以,这就是进步!
[root@node-2 ccx]# cat uuid.sh 
#!/bin/bash

cat uuid.txt |  while read line ; do
        echo -e "`nova show $line | grep network|awk '{print $5}'`:`nova show $line | grep hostname | awk '{print $4}'`"
done
[root@node-2 ccx]# 
  • uuid脚本准备
    我先准备个2台跑脚本看看效果
[root@node-2 ccx]# cat uuid.txt 
2360d273-abb4-4f5d-a3b3-f58b40e14b6 
09a25ee9-9a98-4c44-8a56-397fe81647f 
[root@node-2 ccx]# 
  • 执行这个脚本试试
    嗯。。。很完美
[root@node-2 ccx]# sh uuid.sh 
1.2.3.31:node-6.domain.tld
1.2.3.32:node-18.domain.tld
[root@node-2 ccx]# 
脚本代码终版
  • 其实代码和上面一样,我就是添加了个追加到文件而已
[root@node-2 ccx]# cat uuid.sh
#!/bin/bash

cat uuid.txt |  while read line ; do
        echo -e "`nova show $line | grep network|awk '{print $5}'`:`nova show $line | grep hostname | awk '{print $4}'`" >> uuidxuniji.txt
done
[root@node-2 ccx]# 
  • uuid文件,放了所有uuid
    其实我就是按表里的uuid复制过来的,这样后面复制过去和表里就对应起来了
  • 然后就执行呗,慢慢等执行完就好了
    如果你想实时看表里更新也是可以的,新打开一个窗口,然后tail -f 文件名 就可以实时更新数据了
最终信息提取完成展示
  • 最后将脚本结果复制到excel嘛,然后通过: 分列就好了,对应一下ip,ip对上了,宿主机就对上了,如下

  • 最后成品如下

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/894602.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号