热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

利用脚本在Virtualbox中部署fuelOpenstack

准备工作:MirantisFuelOpenStack安装文件(ISO格式)VirtualBoxScriptsCygwin及相关组件VirtualBox安装文件及扩展文件下载地址:M

准备工作:

  • Mirantis Fuel OpenStack安装文件(ISO格式)

  • Virtual Box Scripts

  • Cygwin及相关组件

  • Virtual Box安装文件及扩展文件


下载地址:

  • Mirantis相关:https://software.mirantis.com/releases/#supported

  • Virtual Box相关:https://www.virtualbox.org

  • Cygwin相关:https://cygwin.com/mirrors.html


安装Virtual Box及扩展包

安装Virtual Box比较简单,直接根据提示进行安装即可,步骤忽略。

安装Virtual Box扩展包的方法:在Virtual Box界面,选择管理-全局设定-扩展界面,选择添加安装并选择Virtual Box扩展包文件即可。

PS:注意扩展包一定要与Virtual Box版本一致。

技术分享

安装Cygwin及组件

双机下载的Cygwin安装包,在安装至选择下载站点界面时,尽量选择国内的下载站点以加快下载速度。

技术分享

在包选择界面输入expect并将单击搜索结果中的记录是指状态边为install

技术分享

然后进行包安装界面,安装完毕后点击上一步,然后依次选择openssh、procps、xxd三个软件包,然后完成安装。

技术分享

部署openstack环境

如果前面步骤顺利的话,部署openstack一般会比较简单。将openstack的Virtual box script文件包解压(最好解压到C盘),然后将fuel openstack文件(ISO格式)放到脚本文件夹下的\virtualbox\iso目录。


运行Cygwin工具,并将工作路径切换到

cd /cygdrive/c/vbox-scripts-8.0-mu-1/virtualbox/


执行安装程序

sh launch.sh


PS:一共有launch.sh、aunch_8GB.sh、launch_16GB.sh三个安装文件,请根据自己电脑的配置进行选择,也可以先运行config.sh脚本先配置虚机的配置参数,再运行launch.sh脚本,具体参考https://docs.mirantis.com/openstack/fuel/fuel-8.0/quickstart-guide.html#installing-mirantis-openstack-using-the-mirantis-virtualbox-scripts


安装过程为自动执行(含自动检验环境、自动创建虚机网络、自动创建虚机并完成部署),大约需要30分钟(依赖于自己电脑配置)。


openstack环境检验

安装完毕后,根据界面提示在浏览器打开下面的地址

技术分享

web界面默认的用户名和密码均为admin

技术分享

至此,fuel部署完成,后续是利用fuel部署openstack环境的步骤。


附1:安装界面打印(版本7)

Administrator@A23136070 /cygdrive/c/vbox-scripts-7.0/virtualbox
$ sh launch.sh
Checking for ‘free‘... OK
Checking for ‘expect‘... OK
If you run this script under Cygwin, you may have to add path to VirtualBox directory to your PATH.
Usually it is enough to run "export PATH=$PATH:"/cygdrive/c/Program Files/Oracle/VirtualBox"
Checking for "VBoxManage"... OK
Checking for VirtualBox Extension Pack... OK
Checking for Mirantis OpenStack ISO image... OK
Going to use Mirantis OpenStack ISO file iso/MirantisOpenStack-7.0.iso
Checking if SSH client installed... OK
Checking if ipconfig or ifconfig installed... OK
Setup is done.
Deleting host-only interface: VirtualBox Host-Only Ethernet Adapter #2...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Deleting host-only interface: VirtualBox Host-Only Ethernet Adapter #3...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Deleting host-only interface: VirtualBox Host-Only Ethernet Adapter #4...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Creating host-only interface
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Interface VirtualBox Host-Only Ethernet Adapter #2 was successfully created
Disabling DHCP server on interface: VirtualBox Host-Only Ethernet Adapter #2...
Configuring IP address 10.20.0.1 and network mask 255.255.255.0 on interface: VirtualBox Host-Only Ethernet Adapter #2...
+ VBoxManage hostonlyif ipconfig ‘VirtualBox Host-Only Ethernet Adapter #2‘ --ip 10.20.0.1 --netmask 255.255.255.0
+ set +x
Verifying interface VirtualBox Host-Only Ethernet Adapter #2 has IP 10.20.0.1 and mask 255.255.255.0 properly set.
OK.
Creating host-only interface
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Interface VirtualBox Host-Only Ethernet Adapter #3 was successfully created
Disabling DHCP server on interface: VirtualBox Host-Only Ethernet Adapter #3...
Configuring IP address 172.16.0.254 and network mask 255.255.255.0 on interface: VirtualBox Host-Only Ethernet Adapter #3...
+ VBoxManage hostonlyif ipconfig ‘VirtualBox Host-Only Ethernet Adapter #3‘ --ip 172.16.0.254 --netmask 255.255.255.0
+ set +x
Verifying interface VirtualBox Host-Only Ethernet Adapter #3 has IP 172.16.0.254 and mask 255.255.255.0 properly set.
OK.
Creating host-only interface
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Interface VirtualBox Host-Only Ethernet Adapter #4 was successfully created
Disabling DHCP server on interface: VirtualBox Host-Only Ethernet Adapter #4...
Configuring IP address 172.16.1.1 and network mask 255.255.255.0 on interface: VirtualBox Host-Only Ethernet Adapter #4...
+ VBoxManage hostonlyif ipconfig ‘VirtualBox Host-Only Ethernet Adapter #4‘ --ip 172.16.1.1 --netmask 255.255.255.0
+ set +x
Verifying interface VirtualBox Host-Only Ethernet Adapter #4 has IP 172.16.1.1 and mask 255.255.255.0 properly set.
OK.
Virtual machine ‘fuel-master‘ is created and registered.
UUID: 33207018-c9d7-4222-967f-9877d545d060
Settings file: ‘D:\VMs\fuel-master\fuel-master.vbox‘
Adding hostonly adapter to fuel-master and bridging with host NIC VirtualBox Host-Only Ethernet Adapter #2...
Adding disk to fuel-master, with size 65535 Mb...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: bb04f877-9579-4ae1-8473-c9a735703eb8
Adding serial numbers of disks to fuel-master...
Adding hostonly adapter to fuel-master and bridging with host NIC VirtualBox Host-Only Ethernet Adapter #3...
Adding NAT adapter to fuel-master for outbound network access through the host system...
Waiting for VM "fuel-master" to power on...
VM "fuel-master" has been successfully started.
Waiting for product VM to install. Please do NOT abort the script...
Checking for internet connectivity on the host system... FAIL
############################################################
# WARNING: some of the Fuel features will not be supported #
#          because there is no Internet connectivity       #
############################################################
Checking local DNS configuration... /etc/resolv.conf does not contain a nameserver. Using 8.8.8.8 for DNS.
Enabling outbound network/internet access for the product VM...
Waiting until the network services are restarted...
FAIL
############################################################
# WARNING: some of the Fuel features will not be supported #
#          because there is no Internet connectivity       #
############################################################
Master node has been installed.
Virtual machine ‘fuel-slave-1‘ is created and registered.
UUID: d086ecbb-47b5-4537-894b-ea0430235313
Settings file: ‘D:\VMs\fuel-slave-1\fuel-slave-1.vbox‘
Adding hostonly adapter to fuel-slave-1 and bridging with host NIC VirtualBox Host-Only Ethernet Adapter #2...
Adding disk to fuel-slave-1, with size 65535 Mb...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: fb7ce950-1295-4b58-8387-b65017c92ee4
Adding serial numbers of disks to fuel-slave-1...
Adding hostonly adapter to fuel-slave-1 and bridging with host NIC VirtualBox Host-Only Ethernet Adapter #3...
Adding hostonly adapter to fuel-slave-1 and bridging with host NIC VirtualBox Host-Only Ethernet Adapter #4...
Adding disk to fuel-slave-1, with size 65535 Mb...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: 3e053bc2-2495-4d63-b61b-44b60bbb11e9
Adding serial numbers of disks to fuel-slave-1...
Adding disk to fuel-slave-1, with size 65535 Mb...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: 431cd2aa-0f07-4864-9943-fc4a8445b6d0
Adding serial numbers of disks to fuel-slave-1...
Waiting for VM "fuel-slave-1" to power on...
VM "fuel-slave-1" has been successfully started.
Virtual machine ‘fuel-slave-2‘ is created and registered.
UUID: 3b6089d2-863f-4d60-be73-6d1c98a79fb3
Settings file: ‘D:\VMs\fuel-slave-2\fuel-slave-2.vbox‘
Adding hostonly adapter to fuel-slave-2 and bridging with host NIC VirtualBox Host-Only Ethernet Adapter #2...
Adding disk to fuel-slave-2, with size 65535 Mb...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: e6220313-1e5c-4cfb-9625-c4309ab81f72
Adding serial numbers of disks to fuel-slave-2...
Adding hostonly adapter to fuel-slave-2 and bridging with host NIC VirtualBox Host-Only Ethernet Adapter #3...
Adding hostonly adapter to fuel-slave-2 and bridging with host NIC VirtualBox Host-Only Ethernet Adapter #4...
Adding disk to fuel-slave-2, with size 65535 Mb...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: 48bea890-63f9-451a-a828-31fc298e8ae2
Adding serial numbers of disks to fuel-slave-2...
Adding disk to fuel-slave-2, with size 65535 Mb...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: 3a5ab4b3-ce8a-452b-a3ef-a1b1a0bcba3e
Adding serial numbers of disks to fuel-slave-2...
Waiting for VM "fuel-slave-2" to power on...
VM "fuel-slave-2" has been successfully started.
Virtual machine ‘fuel-slave-3‘ is created and registered.
UUID: 544d2774-bb46-482c-9354-f4579d8ec42f
Settings file: ‘D:\VMs\fuel-slave-3\fuel-slave-3.vbox‘
Adding hostonly adapter to fuel-slave-3 and bridging with host NIC VirtualBox Host-Only Ethernet Adapter #2...
Adding disk to fuel-slave-3, with size 65535 Mb...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: 52a9342e-34a6-46ac-ba98-14f007773d08
Adding serial numbers of disks to fuel-slave-3...
Adding hostonly adapter to fuel-slave-3 and bridging with host NIC VirtualBox Host-Only Ethernet Adapter #3...
Adding hostonly adapter to fuel-slave-3 and bridging with host NIC VirtualBox Host-Only Ethernet Adapter #4...
Adding disk to fuel-slave-3, with size 65535 Mb...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: 55fcce35-13ef-4e90-b30d-00a6d02bca1c
Adding serial numbers of disks to fuel-slave-3...
Adding disk to fuel-slave-3, with size 65535 Mb...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: 7ccc2083-227d-4677-bf99-3376b6133de8
Adding serial numbers of disks to fuel-slave-3...
Waiting for VM "fuel-slave-3" to power on...
VM "fuel-slave-3" has been successfully started.
Slave nodes have been created. They will boot over PXE and get discovered by the master node.
To access master node, please point your browser to:
    http://10.20.0.2:8000/
The default username and password is admin:admin

附2:安装界面打印(版本8)

Administrator@A23136070 /cygdrive/c/vbox-scripts-8.0-mu-1/virtualbox
$ sh launch.sh
Prepare the host system...
Checking for ‘free‘... OK
Checking for ‘expect‘... OK
Checking for ‘xxd‘... OK
Checking for "VBoxManage"... OK
Checking for VirtualBox Extension Pack... OK
Checking for VirtualBox iPXE firmware...SKIP
VirtualBox iPXE firmware is not found. Used standard firmware from the VirtualBox Extension Pack.
Checking for Mirantis OpenStack ISO image... OK
Going to use Mirantis OpenStack ISO file iso/MirantisOpenStack-8.0.iso
Checking if SSH client installed... OK
Checking if ipconfig or ifconfig installed... OK
Done.
Check available memory on the host system...
Done.
Сlean previous installation if exists...
Done.
Deleting old interfaces if exists...
Done.
Creating host-only interface...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Interface VirtualBox Host-Only Ethernet Adapter #2 was successfully created
Disabling DHCP server on interface: VirtualBox Host-Only Ethernet Adapter #2...
Configuring IP address 10.20.0.1 and network mask 255.255.255.0 on interface: VirtualBox Host-Only Ethernet Adapter #2...
Verifying interface VirtualBox Host-Only Ethernet Adapter #2 has IP 10.20.0.1 and mask 255.255.255.0 properly set.
OK.
Creating host-only interface...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Interface VirtualBox Host-Only Ethernet Adapter #3 was successfully created
Disabling DHCP server on interface: VirtualBox Host-Only Ethernet Adapter #3...
Configuring IP address 172.16.0.254 and network mask 255.255.255.0 on interface: VirtualBox Host-Only Ethernet Adapter #3...
Verifying interface VirtualBox Host-Only Ethernet Adapter #3 has IP 172.16.0.254 and mask 255.255.255.0 properly set.
OK.
Creating host-only interface...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Interface VirtualBox Host-Only Ethernet Adapter #4 was successfully created
Disabling DHCP server on interface: VirtualBox Host-Only Ethernet Adapter #4...
Configuring IP address 172.16.1.1 and network mask 255.255.255.0 on interface: VirtualBox Host-Only Ethernet Adapter #4...
Verifying interface VirtualBox Host-Only Ethernet Adapter #4 has IP 172.16.1.1 and mask 255.255.255.0 properly set.
OK.
Virtual machine ‘fuel-master‘ is created and registered.
UUID: f633e7d0-523d-42bf-b542-939db284934f
Settings file: ‘D:\VMs\fuel-master\fuel-master.vbox‘
Adding hostonly adapter to fuel-master and bridging with host NIC VirtualBox Host-Only Ethernet Adapter #2...
Adding disk to fuel-master, with size 65535 Mb...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: ba25dcd4-2acb-47a0-b0e3-61c975161f5f
Adding serial numbers of disks to fuel-master...
Adding hostonly adapter to fuel-master and bridging with host NIC VirtualBox Host-Only Ethernet Adapter #3...
Adding NAT adapter to fuel-master for outbound network access through the host system...
Waiting for VM "fuel-master" to power on...
VM "fuel-master" has been successfully started.
Waiting for product VM to download files. Please do NOT abort the script... OK
Checking for internet connectivity on the host system... FAIL
############################################################
# WARNING: some of the Fuel features will not be supported #
#          because there is no Internet connectivity       #
############################################################
Checking local DNS configuration... /etc/resolv.conf does not contain a nameserver. Using 8.8.8.8 for DNS.
Enabling outbound network/internet access for the product VM... OK
Waiting until the network services are restarted... FAIL
############################################################
# WARNING: some of the Fuel features will not be supported #
#          because there is no Internet connectivity       #
############################################################
Waiting for product VM to install. Please do NOT abort the script... OK
Master node has been installed.
Virtual machine ‘fuel-slave-1‘ is created and registered.
UUID: f007664b-d706-4666-8f1f-3c55fb7296ea
Settings file: ‘D:\VMs\fuel-slave-1\fuel-slave-1.vbox‘
Adding hostonly adapter to fuel-slave-1 and bridging with host NIC VirtualBox Host-Only Ethernet Adapter #2...
Adding disk to fuel-slave-1, with size 65535 Mb...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: 0cfeac5e-26e2-4c36-aa17-8687d2e4ce07
Adding serial numbers of disks to fuel-slave-1...
Adding hostonly adapter to fuel-slave-1 and bridging with host NIC VirtualBox Host-Only Ethernet Adapter #3...
Adding hostonly adapter to fuel-slave-1 and bridging with host NIC VirtualBox Host-Only Ethernet Adapter #4...
Adding disk to fuel-slave-1, with size 65535 Mb...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: 2026f819-d843-4633-96ac-721e4e5dbfce
Adding serial numbers of disks to fuel-slave-1...
Adding disk to fuel-slave-1, with size 65535 Mb...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: cb00d081-6654-408a-9e11-cd0fecbf9b2b
Adding serial numbers of disks to fuel-slave-1...
Waiting for VM "fuel-slave-1" to power on...
VM "fuel-slave-1" has been successfully started.
Virtual machine ‘fuel-slave-2‘ is created and registered.
UUID: 48d832c1-6f3d-4362-91ee-91ce07f03c66
Settings file: ‘D:\VMs\fuel-slave-2\fuel-slave-2.vbox‘
Adding hostonly adapter to fuel-slave-2 and bridging with host NIC VirtualBox Host-Only Ethernet Adapter #2...
Adding disk to fuel-slave-2, with size 65535 Mb...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: de07d288-ae1f-486f-bf0e-6dc979742bdd
Adding serial numbers of disks to fuel-slave-2...
Adding hostonly adapter to fuel-slave-2 and bridging with host NIC VirtualBox Host-Only Ethernet Adapter #3...
Adding hostonly adapter to fuel-slave-2 and bridging with host NIC VirtualBox Host-Only Ethernet Adapter #4...
Adding disk to fuel-slave-2, with size 65535 Mb...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: 24d4688f-c71d-4042-ae23-3240a13d94c9
Adding serial numbers of disks to fuel-slave-2...
Adding disk to fuel-slave-2, with size 65535 Mb...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: 3f92c896-7c8d-4784-91f1-07a65f212aaa
Adding serial numbers of disks to fuel-slave-2...
Waiting for VM "fuel-slave-2" to power on...
VM "fuel-slave-2" has been successfully started.
Virtual machine ‘fuel-slave-3‘ is created and registered.
UUID: 7d046487-6e7f-419c-a48e-c9c2f6b16b0d
Settings file: ‘D:\VMs\fuel-slave-3\fuel-slave-3.vbox‘
Adding hostonly adapter to fuel-slave-3 and bridging with host NIC VirtualBox Host-Only Ethernet Adapter #2...
Adding disk to fuel-slave-3, with size 65535 Mb...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: 33a963f5-7049-43fc-8235-0ad5854abc43
Adding serial numbers of disks to fuel-slave-3...
Adding hostonly adapter to fuel-slave-3 and bridging with host NIC VirtualBox Host-Only Ethernet Adapter #3...
Adding hostonly adapter to fuel-slave-3 and bridging with host NIC VirtualBox Host-Only Ethernet Adapter #4...
Adding disk to fuel-slave-3, with size 65535 Mb...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: 30be8af7-a99f-4846-88f8-0dc6df025b9f
Adding serial numbers of disks to fuel-slave-3...
Adding disk to fuel-slave-3, with size 65535 Mb...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: 2058eed9-74c7-4a86-a0dd-4c2c447e48bb
Adding serial numbers of disks to fuel-slave-3...
Waiting for VM "fuel-slave-3" to power on...
VM "fuel-slave-3" has been successfully started.
Slave nodes have been created. They will boot over PXE and get discovered by the master node.
To access master node, please point your browser to:
    http://10.20.0.2:8000/
The default username and password is admin:admin

附3:删除环境需要运行sh clean.sh

Administrator@A23136070 /cygdrive/c/vbox-scripts-8.0-mu-1/virtualbox
$ sh clean.sh
Prepare the host system...
Checking for ‘free‘... OK
Checking for ‘expect‘... OK
Checking for ‘xxd‘... OK
Checking for "VBoxManage"... OK
Checking for VirtualBox Extension Pack... OK
Checking if SSH client installed... OK
Checking if ipconfig or ifconfig installed... OK
Done.
Сlean previous installation if exists...
Found existing VM: fuel-master. Deleting it...
Stopping Virtual Machine fuel-master...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Deleting existing virtual machine fuel-master...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Found existing VM: fuel-slave-1. Deleting it...
Stopping Virtual Machine fuel-slave-1...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Deleting existing virtual machine fuel-slave-1...
0%...10%...20%...
Progress state: VBOX_E_INVALID_OBJECT_STATE
VBoxManage.exe: error: Machine delete failed
VBoxManage.exe: error: Medium ‘D:\VMs\fuel-slave-1\fuel-slave-1_0.vdi‘ is locked for reading by another task
VBoxManage.exe: error: Details: code VBOX_E_INVALID_OBJECT_STATE (0x80bb0007), component Medium, interface IMedium
VBoxManage.exe: error: Context: "int __cdecl handleUnregisterVM(struct HandlerArg *)" at line 166 of file VBoxManageMisc.cpp
Found existing VM: fuel-slave-2. Deleting it...
Stopping Virtual Machine fuel-slave-2...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Deleting existing virtual machine fuel-slave-2...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Found existing VM: fuel-slave-3. Deleting it...
Stopping Virtual Machine fuel-slave-3...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Deleting existing virtual machine fuel-slave-3...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Done.
Deleting old interfaces if exists...
Deleting host-only interface: VirtualBox Host-Only Ethernet Adapter #4...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Deleting host-only interface: VirtualBox Host-Only Ethernet Adapter #3...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Deleting host-only interface: VirtualBox Host-Only Ethernet Adapter #2...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Done.




推荐阅读
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • QUIC协议:快速UDP互联网连接
    QUIC(Quick UDP Internet Connections)是谷歌开发的一种旨在提高网络性能和安全性的传输层协议。它基于UDP,并结合了TLS级别的安全性,提供了更高效、更可靠的互联网通信方式。 ... [详细]
  • 深入理解OAuth认证机制
    本文介绍了OAuth认证协议的核心概念及其工作原理。OAuth是一种开放标准,旨在为第三方应用提供安全的用户资源访问授权,同时确保用户的账户信息(如用户名和密码)不会暴露给第三方。 ... [详细]
  • 2023 ARM嵌入式系统全国技术巡讲旨在分享ARM公司在半导体知识产权(IP)领域的最新进展。作为全球领先的IP提供商,ARM在嵌入式处理器市场占据主导地位,其产品广泛应用于90%以上的嵌入式设备中。此次巡讲将邀请来自ARM、飞思卡尔以及华清远见教育集团的行业专家,共同探讨当前嵌入式系统的前沿技术和应用。 ... [详细]
  • 国内BI工具迎战国际巨头Tableau,稳步崛起
    尽管商业智能(BI)工具在中国的普及程度尚不及国际市场,但近年来,随着本土企业的持续创新和市场推广,国内主流BI工具正逐渐崭露头角。面对国际品牌如Tableau的强大竞争,国内BI工具通过不断优化产品和技术,赢得了越来越多用户的认可。 ... [详细]
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • 在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ... [详细]
  • CSS 布局:液态三栏混合宽度布局
    本文介绍了如何使用 CSS 实现液态的三栏布局,其中各栏具有不同的宽度设置。通过调整容器和内容区域的属性,可以实现灵活且响应式的网页设计。 ... [详细]
  • 本文介绍了如何使用jQuery根据元素的类型(如复选框)和标签名(如段落)来获取DOM对象。这有助于更高效地操作网页中的特定元素。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 本文介绍如何在 Xcode 中使用快捷键和菜单命令对多行代码进行缩进,包括右缩进和左缩进的具体操作方法。 ... [详细]
  • 如何在WPS Office for Mac中调整Word文档的文字排列方向
    本文将详细介绍如何使用最新版WPS Office for Mac调整Word文档中的文字排列方向。通过这些步骤,用户可以轻松更改文本的水平或垂直排列方式,以满足不同的排版需求。 ... [详细]
author-avatar
lxm淡淡嘚甜_671
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有