openstack鏡像之Windows(可重設密碼)

來源:互聯網
上載者:User

標籤:openstack windows鏡像   openstack windows鏡像重設密碼   windows鏡像重設密碼   openstack-mitaka windows鏡像重設密碼   


環境聲明:

os windows2008r2

openstack mitaka


   本文修改主機密碼的方式為 metadata 注入方式,在雲主機內部再配合一個修改密碼、重設密碼的指令碼,達到修改、重設雲主機密碼的作用; 目前修改、重設密碼的指令碼都是python指令碼,所以做此鏡像需要在鏡像中安裝python,pywin32才行,因為目前測試的結果是,cloud-init在windows系統中,只會在初始化的時候啟動一次,之後便不會再啟動了,所以還有一個重設密碼的指令碼,重設密碼的指令碼會在系統中產生一個reset-Administrator的系統服務,此服務需要將啟動類型修改為“延遲自啟”;要是哪位大神看到了,希望可以指點一二


原文連結:http://readshlinux.blog.51cto.com/9322509/1902888





1.在kvm中安裝虛擬機器

650) this.width=650;" src="https://s2.51cto.com/wyfs02/M01/8E/36/wKiom1i41BGB4qtvAADUxCM7Bk0127.png-wh_500x0-wm_3-wmp_4-s_1616061957.png" title="clipboard(12).png" alt="wKiom1i41BGB4qtvAADUxCM7Bk0127.png-wh_50" />


650) this.width=650;" src="https://s5.51cto.com/wyfs02/M01/8E/34/wKioL1i41ELxgbAKAAGTHL8Rk7k795.png-wh_500x0-wm_3-wmp_4-s_2366953565.png" title="clipboard(6).png" alt="wKioL1i41ELxgbAKAAGTHL8Rk7k795.png-wh_50" />



650) this.width=650;" src="https://s4.51cto.com/wyfs02/M02/8E/34/wKioL1i41HOB84RBAAF860LwDes439.png-wh_500x0-wm_3-wmp_4-s_2681214709.png" title="clipboard(13).png" alt="wKioL1i41HOB84RBAAF860LwDes439.png-wh_50" />


然後開始安裝即可



2.為kvm中的虛擬安裝虛擬驅動


中斷連線---->掛載virtios-win.iso---->安裝裝置驅動


安裝如下3個就ok

viostor

vioserial

NetKVM

650) this.width=650;" src="https://s2.51cto.com/wyfs02/M02/8E/34/wKioL1i41L_AEfZfAACSh35loPY518.png-wh_500x0-wm_3-wmp_4-s_2352333374.png" title="clipboard.png" alt="wKioL1i41L_AEfZfAACSh35loPY518.png-wh_50" />


650) this.width=650;" src="https://s5.51cto.com/wyfs02/M02/8E/34/wKioL1i41cDCgM4FAAEsj40wfh0906.png-wh_500x0-wm_3-wmp_4-s_3329602567.png" title="clipboard(2).png" alt="wKioL1i41cDCgM4FAAEsj40wfh0906.png-wh_50" />


650) this.width=650;" src="https://s4.51cto.com/wyfs02/M00/8E/36/wKiom1i41jOhKdvdAAOSyvd4IP4700.png-wh_500x0-wm_3-wmp_4-s_3902999659.png" title="clipboard(3).png" alt="wKiom1i41jOhKdvdAAOSyvd4IP4700.png-wh_50" />


650) this.width=650;" src="https://s4.51cto.com/wyfs02/M00/8E/34/wKioL1i41luymCFaAAAgkLjps04096.png-wh_500x0-wm_3-wmp_4-s_207586743.png" title="clipboard(14).png" alt="wKioL1i41luymCFaAAAgkLjps04096.png-wh_50" />



viostor

vioserial

NetKVM


650) this.width=650;" src="https://s2.51cto.com/wyfs02/M00/8E/34/wKioL1i41wXQBycBAAEACJwXCbY467.png-wh_500x0-wm_3-wmp_4-s_1939286199.png" title="clipboard(1).png" alt="wKioL1i41wXQBycBAAEACJwXCbY467.png-wh_50" />


650) this.width=650;" src="https://s2.51cto.com/wyfs02/M01/8E/34/wKioL1i41yyQD4vbAAEhM-1aanU762.png-wh_500x0-wm_3-wmp_4-s_2274020920.png" title="clipboard(7).png" alt="wKioL1i41yyQD4vbAAEhM-1aanU762.png-wh_50" />


雖然出現磁碟了,但是還需要安裝網卡的驅動,繼續


650) this.width=650;" src="https://s4.51cto.com/wyfs02/M02/8E/34/wKioL1i411_CM-rAAAD6uGeYD-g191.png-wh_500x0-wm_3-wmp_4-s_85126186.png" title="clipboard(5).png" alt="wKioL1i411_CM-rAAAD6uGeYD-g191.png-wh_50" />


650) this.width=650;" src="https://s2.51cto.com/wyfs02/M02/8E/34/wKioL1i4143xb_nDAAEYf-XkFF0938.png-wh_500x0-wm_3-wmp_4-s_1497558028.png" title="clipboard(10).png" alt="wKioL1i4143xb_nDAAEYf-XkFF0938.png-wh_50" />




3.繼續安裝系統

斷開virtios-win.iso ----> windows.iso

650) this.width=650;" src="https://s5.51cto.com/wyfs02/M02/8E/36/wKiom1i418_jgCSOAACSh35loPY938.png-wh_500x0-wm_3-wmp_4-s_719081804.png" title="clipboard.png" alt="wKiom1i418_jgCSOAACSh35loPY938.png-wh_50" />


650) this.width=650;" src="https://s1.51cto.com/wyfs02/M01/8E/34/wKioL1i42BqgReoUAAM3DG2ZH8g413.png-wh_500x0-wm_3-wmp_4-s_1648982840.png" title="clipboard(9).png" alt="wKioL1i42BqgReoUAAM3DG2ZH8g413.png-wh_50" />



安裝完系統之後,需要將系統啟用,開啟遠端桌面,添加重設密碼的指令碼(安裝python、 python32),第一次修改密碼的指令碼,安裝cloud-init軟體包  這些操作

=================================================================================================================================================================================================================================================================================



最關鍵的是將這些資訊傳入進去

1.在windows系統設定一個共用資料夾

2.在linux系統(kvm宿主機)上掛載改windows系統的共用資料夾

mount //windows_ip/gx /data/gx/ -o username=Administrator,password=[email protected]


3.複製相應資訊到  linux系統(kvm宿主機)掛載windows共用目錄的磁碟

4.複製資訊完成

5.在windows中將該資訊放在正確的地方

6.最後卸載linux系統掛載的windows共用資料夾

umount /data/gx/

7.將windows中的共用資料夾刪除(不要在系統中留下不該留的資訊)



8.啟用windows系統,安裝傳入的python安裝程式,並將python添加到系統內容變數中(在cmd中直接執行python,看會不會進入到pythonide的介面中),最後安裝“reset26重設密碼”服務,我是直接拷貝到python的安裝目錄,之後解釋用cmd命令切入到reset的目錄中,執行python reset26.py install 即可安裝reset的服務啦


重設密碼指令碼

該指令碼會在windows services服務中出現一個名為reset-Administrator的系統服務,注意一定要將他設定為開機延遲啟動,否則重設不了密碼;



===========================================================================================

#!/usr/bin/env python#coding:utf8import osimport jsonimport urllibimport win32serviceutilimport win32serviceimport win32eventdef get_data():data = urllib.urlopen("http://169.254.169.254/openstack/latest/meta_data.json").read().decode()return datadef parse_data(data):json_data = json.loads(data)changePasswd = json_data.get("meta").get("changePasswd")if changePasswd:adminPass = json_data.get("meta").get("admin_pass")os.system("net user Administrator /active:yes")os.system("net user Administrator %s" % adminPass)class reset(win32serviceutil.ServiceFramework):_svc_name_ = "reset"_svc_display_name_ = "reset-Administrator"def __init__(self, args):win32serviceutil.ServiceFramework.__init__(self, args)self.hWaitStop = win32event.CreateEvent(None, 0, 0, None)def SvcStop(self):self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)win32event.SetEvent(self.hWaitStop)def SvcDoRun(self):parse_data(get_data())win32event.WaitForSingleObject(self.hWaitStop, win32event.INFINITE)if __name__==‘__main__‘:win32serviceutil.HandleCommandLine(reset)


===========================================================================================




windows添加環境變數

我的電腦---->屬性---->進階系統設定---->系統屬性---->進階---->環境變數---->添加到Path後就ok

看不懂自行百度、Google



cmd命令列中,執行services.msc 進入到系統的服務類別目錄,查看有沒有reset-Administrator的一個服務,並將屬性中的常規啟動類型修改為“自動(延遲啟動)”,還有恢複中的 第一次失敗到第最後一次失敗   都修改為重新啟動服務   即可



9.安裝cloud-init服務,

650) this.width=650;" src="https://s2.51cto.com/wyfs02/M01/8E/36/wKiom1i42PqhgNnBAABhmw5cGpo019.png-wh_500x0-wm_3-wmp_4-s_847603232.png" title="clipboard(4).png" alt="wKiom1i42PqhgNnBAABhmw5cGpo019.png-wh_50" />


快安裝完時,把指令碼添加到

C:\Program Files\Cloudbase Solutions\Cloudbase-Init\LocalScripts\

即可


修改密碼指令碼

===========================================================================================

# -*- coding:utf-8 -*-import osimport jsonimport urllib.requestdef get_data():data = urllib.request.urlopen("http://169.254.169.254/openstack/latest/meta_data.json").read()return datadef parse_data(data):data1 = str(data)json_data = json.loads(data.decode())changePasswd = json_data.get("meta").get("changePasswd")if changePasswd == "True":adminPass = json_data.get("meta").get("admin_pass")os.system("net user Administrator /active:yes")os.system("net user Administrator %s" % adminPass)data = get_data()parse_data(data)

===========================================================================================



650) this.width=650;" src="https://s4.51cto.com/wyfs02/M02/8E/36/wKiom1i42RaQcRGPAAJIEY0ih9E324.png-wh_500x0-wm_3-wmp_4-s_3399903962.png" title="clipboard(11).png" alt="wKiom1i42RaQcRGPAAJIEY0ih9E324.png-wh_50" />


最後把兩個鉤都打上就ok啦,這個服務會自動清理曆史命令,mac地址,ip地址等 

最後記得把cloud-init這個包刪除,在點擊finish之後,立馬刪除就ok



顯示kvm中所有虛擬機器

virsh list --all

在kvm中刪除虛擬機器,僅僅刪除xml檔案,不會刪除鏡像檔案

virsh undefine windows

將鏡像壓縮

qemu-img convert -c -O qcow2    壓縮之前的路徑+名字 壓縮之後的路徑+名字



參考文檔:https://docs.openstack.org/image-guide/windows-image.html

參考文檔:http://www.cnblogs.com/eineseite/archive/2009/07/02/1515388.html

參考文檔:https://kurisu.love/index.php/archives/47/

參考文檔:http://www.bubuko.com/infodetail-705509.html

參考文檔:http://blog.csdn.net/ghostfromheaven/article/details/8604738









本文出自 “RSLinux” 部落格,請務必保留此出處http://readshlinux.blog.51cto.com/9322509/1902888

openstack鏡像之Windows(可重設密碼)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.