當前位置:網站首頁>openstack底層提取所有虛擬機IP和其uuid、openstack底層提取所有虛擬機的所在宿主機

openstack底層提取所有虛擬機IP和其uuid、openstack底層提取所有虛擬機的所在宿主機

2022-05-13 19:42:06/*守護她的笑容

說明

  • 需求

    • 1、獲取所有錶的ip和期uuid【以底層為准】
    • 2、獲取所有IP的所在宿主機【以底層為准】
  • 實現方式有2種

    • 1、dashboard裏面可以查看,然後一臺一臺的複制【使用少量虛擬機】
    • 2、底層跑脚本獲取【適合多虛擬機】

dashboard

ip名稱對應宿主機

登錄dashboard進入到admin域,裏面就可以看到虛擬機的宿主機。
在這裏插入圖片描述

虛擬機uuid

點擊名稱,進入到詳細,裏面的id就是虛擬機的uuid
在這裏插入圖片描述

底層命令獲取

之前的脚本

我最開始獲取這個的時候,用的是下面的脚本,獲取這些本來是簡簡單單的,我也不知道我為啥寫這麼難理解的一個脚本。。。。下面感興趣的可以自行研究一下,我這不用這個脚本了,用更簡單的方法。。。

[root[email protected] 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 [email protected]$ip virsh list --all | grep ins | awk '{print $2,$3,$4}'`
                        name2=`ssh [email protected]$ip virsh list --all | grep ins | awk '{print $2}'`
                        echo "$name2" >> /root/ccx/uuid2.log
                        name3=`cat /root/ccx/uuid2.log`
                        ipname=`ssh [email protected]$ip hostname`
                        echo -e "$ipname\n$name1"
                done
                array=($name2)
                echo ${array[*]}
                for leng in ${array[*]} ; do
                        #echo $leng
                        uuid=`ssh [email protected]$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
[[email protected] 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
[[email protected] ccx]# nova show 591f918c-0df1-46cf-8081-f66ab76ddd | grep network|awk '{print $5}'
1.23.16.39
[[email protected] ccx]# 
# 提取宿主機
[[email protected] ccx]# nova show 591f918c-0df1-46-8081-f66a80b76ddd | grep hostname | awk '{print $4}'
node-20.domain.tld
[[email protected] ccx]# 

脚本代碼准備測試

  • sh脚本
    之前脚本那麼多行實現的功能和我下面是一樣的,所以,這就是進步!
[[email protected] 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
[[email protected] ccx]# 
  • uuid脚本准備
    我先准備個2臺跑脚本看看效果
[[email protected] ccx]# cat uuid.txt 
2360d273-abb4-4f5d-a3b3-f58b40e14b6 
09a25ee9-9a98-4c44-8a56-397fe81647f 
[[email protected] ccx]# 
  • 執行這個脚本試試
    嗯。。。很完美
[[email protected] ccx]# sh uuid.sh 
1.2.3.31:node-6.domain.tld
1.2.3.32:node-18.domain.tld
[[email protected] ccx]# 

脚本代碼終版

  • 其實代碼和上面一樣,我就是添加了個追加到文件而已
[[email protected] 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
[[email protected] ccx]# 
  • uuid文件,放了所有uuid
    其實我就是按錶裏的uuid複制過來的,這樣後面複制過去和錶裏就對應起來了
    在這裏插入圖片描述
  • 然後就執行唄,慢慢等執行完就好了
    如果你想實時看錶裏更新也是可以的,新打開一個窗口,然後tail -f 文件名 就可以實時更新數據了
    在這裏插入圖片描述

最終信息提取完成展示

  • 最後將脚本結果複制到excel嘛,然後通過: 分列就好了,對應一下ip,ip對上了,宿主機就對上了,如下
    在這裏插入圖片描述

  • 最後成品如下
    在這裏插入圖片描述

版權聲明
本文為[/*守護她的笑容]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/133/202205131920430884.html

隨機推薦