Azure Stack运维工具Azure Stack Tools的使用及实战

《Azure Stack运维工具Azure Stack Tools的使用及实战》要点:
本文介绍了Azure Stack运维工具Azure Stack Tools的使用及实战,希望对您有用。如果有疑问,可以联系我们。

Azure Stack

作者:彭毅程

编辑:江柳

源自 Azure 的 Azure stack 作为一款业界唯一的和领先的公有云平台一致的混合云平台,能够帮助企业客户从自有数据中心交付 Azure 云服务.作为《Azure Stack 技术深入浅出系列》的第三篇文章,本文将介绍 Azure Stack 部署完成以后,如何快速的管理和维护这套系统环境,包括虚拟机的管理、远程 VPN 连接、传输部署镜像、远程监控等.本文将通过一套 Azure Stack 运维工具集——Azure Stack Tools 来尝试使用和管理 Azure Stack 集群环境.

Azure Stack Tools 是在 GitHub 上维护的一套 Azure Stack 工具集,由微软 Azure Stack 团队为系统开发者和运维者提供的一款基于 Azure Resources Manager 的脚本工具.为了混合云管理开发运维一致性的设计原理,它沿袭了 Azure Resource Managers 设计风格的指令集,可以使开发者与运维者能够像使用 AzureRM 模块一样使用 Azure Stack Tools.不同于 Portal 界面,Azure Stack Tools 能够批处理相关运维、监控操作,为相关人员节省不必要的工作.

这一篇,我们将探讨以下几个方面:

  • 准备工作:部署前准备、获取 Azure Stack Tools
  • 功能介绍及实例:安装 Azure Stack、远程连接、上传镜像、部署虚机、部署模板

就在本文撰写过程中,2017 年 7 月 10 日 Azure Stack Development Kit(Azure Stack PoC 版本 GA 之后的名字) GA,Azure Stack Tools 也进行了一定程度的更新.后续,我们会根据更新内容测试之后,更新相关技术文档.

部署前准备

在部署之前需要确认用于部署的物理环境是否能够满足部署的基本要求,建议参阅《Azure-Stack-PoC-Deployment》(http://www.a-stack.com/Azure-Stack-PoC-Deployment/)中第一章节“部署前准备”.

获取 Azure Stack Tools

首先我们通过 git 工具从代码库中下载 Azure Stack Tools.

git clone https://github.com/Azure/AzureStack-Tools.git --recursive

打开 AzureStack-Tools 文件夹,我们看到 Azure Stack Tools 子模块,他们涵盖了部署、连接 VPN、虚机管理、监控等多个不同功能.本篇我们将主要介绍部署、连接和虚机管理这三大功能.

Azure stack

辅助 Azure Stack 安装工具

Azure Stack Tools 的里提供一些脚本用于 Azure Stack 部署流程,Azure Stack Development Kit 发布之后,新推出了基于 GUI 的部署模式,简化了部署流程,有兴趣的读者可以研究一下 Azure Stack Tool 提供的相关脚本,相信对于理解 Azure Stack 基础架构会有一定的帮助.

使用 Azure Stack Tools 之前,我们必须安装 PowerShell 模块.可以使用如下代码测试是否已安装模块:

Find-Module -Name azurerm.*
Find-Module -Name AzureStack.*

如果出现下列情况,说明已经安装 AzureRM 模块.

AzureRM

否则请执行下列代码,安装 AzureRM

Install-Module -Name 'AzureRm.Bootstrapper' -Scope CurrentUser
Install-AzureRmProfile -profile '2017-03-09-profile' -Force -Scope CurrentUser
Install-Module -Name AzureStack -RequiredVersion 1.2.9 -Scope CurrentUser

现在我们打开 PowerShell,开始进行安装过程.

首先安装 Azure Stack TP3 支持文件.然后 cd 到该文件目录下,最后执行“PrepareBootFromVHD.ps1”.

# Variables
$Uri = 'https://raw.githubusercontent.com/Azure/AzureStack-Tools/master/Deployment/'
$LocalPath = 'c:\\AzureStack_TP3_SupportFiles'

# Create folder
New-Item $LocalPath -Type directory

# Download files
'BootMenuNoKVM.ps1','PrepareBootFromVHD.ps1','Unattend.xml','unattend_NoKVM.xml' | foreach { Invoke-WebRequest ($uri + $_)`    
-Out File ($LocalPath + '\\' + $_) } 

# Deploy from VHD
.\\PrepareBootFromVHD.ps1 -CloudBuilderDiskPath C:\\CloudBuilder.vhdx -ApplyUnattend
Restart-Computer -Force
执行完上述操作后,需要重新启动.
Restart-Computer-force

远程连接

访问 Azure Stack 服务,有两种途径.一种是通过远程桌面(RDP)访问 Azure Stack 宿主机中的 MSA-CON01 机器.第二种方式通过 VPN 隧道的形式,使我们使用的电脑成为 Azure Stack 网络中的一部分,对 Azure Stack 进行访问.连接 VPN 的好处在于可以让多个用户在同一时间对 Azure Stack 进行使用.这一节,我们会介绍如何使用 VPN 连接 Azure Stack.

我们了解下 Azure Stack VPN 连接的流程

流程

Azure Stack Tools 工具包中有多个模块,导入 Connect 文件夹中的 AzureStack.Connect.psm1.

Import-Module .\\ComputeAdmin\\AzureStack.ComputeAdmin.psm1

使用 window remote manager,在本地电脑中添加 Azure Stack 主机和 MAS-CA 服务信任模式.这里的 $hostIP 就是安装 Azure Stack 平台的主机 IP 地址.

# 在 Powershell 中执行 
winrm quickconfig
# Add Azure Stack One Node host & CA to the trusted hosts on your client computer
Set-Item wsman:\\localhost\\Client\\TrustedHosts -Value $hostIP -Concatenate
Set-Item wsman:\\localhost\\Client\\TrustedHosts -Value mas-ca01.azurestack.local -Concatenate

连接 BGP-NAT 服务器,获取 NAT IP 地址.$password 为安装 Azure Stack 平台部署时所设定的基础架构虚拟机的管理员密码

# Update Azure Stack host address to be the IP Address of the Azure Stack POC Host
$natIp = Get-AzureStackNatServerAddress -HostComputer $hostIP -Password $Password

当我们获取 NAT IP 之后,添加 VPN 连接,使用如下代码即可.

# Create VPN connection entry for the current user
Add-AzureStackVpnConnection -ServerAddress $natIp -Password $Password

# Connect to the Azure Stack instance. This command can be used to reconnect
Connect-AzureStackVpn -Password $Password

我们打开 windows 电脑显示网络界面,此时我们的电脑已经与 Azure Stack 网络联通.

Azure Stack运维工具Azure Stack Tools的使用及实战

完成上述操作之后,我们打开 windows 电脑显示网络界面,此时我们的电脑已经与 Azure Stack 网络联通.

# To test the portal connection,open an Internet browser and navigate to either the user portal 
https://publicportal.local.azurestack.external 
# the administrator portal,sign in and create resources.  
https://portal.local.azurestack.external

我们现在可以在浏览器中打开下列地址.

Azure Stack运维工具Azure Stack Tools的使用及实战

在结束 VPN 连接之前,我们可以为 Azure Stack RM 添加两个环境,这样做的好处在于.如果我们使用 PowerShell 进行 Azure Stack 脚本部署和模板搭建,这两个环境能够方便我们获取租户 Id 信息,从而通过 AzureRM 模块工具对 Azure Stack 进行开发.

# Remove existed Enviroment
Remove-AzureRmEnvironment -Name AzureStack
Remove-AzureRmEnvironment -Name AzureStackAdmin

# Set AzureStackAdmin ARM Endpoint
Add-AzureStackAzureRmEnvironment -Name "AzureStack" -ArmEndpoint "https://management.local.azurestack.external" 
# Set AzureStackAdmin ARM Endpoint 
Add-AzureStackAzureRmEnvironment -Name "AzureStackAdmin" -ArmEndpoint "https://adminmanagement.local.azurestack.external"

Azure Stack 从 TP3 开始,顺应客户的要求,分离了 Admin 和 Tenant 的门户和端点,以确保安全.只有管理员在执行管理类的操作,例如添加 Resource Provider、Image 等,才需要登录到 AzureStackAdmin 环境;而租户自己执行操作,则登录到 AzureStackUser,租户没有 Admin 账户权限,也不可能登录到 AzureStackAdmin.

# Get the AAD Tenant GUID
$TenantID = Get-DirectoryTenantID -AADTenantName ".onmicrosoft.com" -EnvironmentName AzureStackAdmin 
#Get the ADFS Tenant GUID
$Tenantid = Get-DirectoryTenantID -ADFS -EnvironmentName AzureStackAdmin

# Sign-in Admin to AzureStackAdmin ARM Endpoint
# e.g username: pengtest1@azurestack.local
Login-AzureRmAccount -EnvironmentName "AzureStackAdmin" -TenantId $TenantID
Login-AzureRmAccount -EnvironmentName "AzureStack" -TenantId $TenantID

上传镜像

当我们安装完成 Azure Stack 之后,会发现 Azure Stack 内部什么都没有,镜像库里没有 VHD 镜像资源,如果我们需要在 MarketPlace 中添加镜像,可以使用 Azure Stack Tools 中的 ComputeAdmin 模块进行镜像的上传.

在下图中,我们看到 Virtual Machines 选项中显示出两个镜像资源,分别为 Ubuntu14.02 和 Windows Server 2016.对于 Linux 和 Windows 系统,制作镜像的途径不一样.在本文中,我们着重进行镜像上传的操作.如果有童鞋需要了解镜像制作的方法,可以点击该链接.

镜像

在创建镜像资源之前,我们先要载入 Connect 模块和 ComputeAdmin 模块

Import-Module .\\Connect\\AzureStack.Connect.psm1
Import-Module .\\ComputeAdmin\\AzureStack.ComputeAdmin.psm

在上一节,我们已经通过 VPN 的方式为 Azure Stack 打通隧道,我们继续使用上述环境,利用 VPN 环境获取租户的 id.

# Get tenant id
$Tenantid = Get-DirectoryTenantID -ADFS -EnvironmentName AzureStackAdmin

接着通过 AzureRM 模块,登录 Azure Stack Admin 环境.这边我们是不是看到一个熟悉的使用环境了?对的,这就是 PowerShell Azure 开发中最基本的脚本运行代码.为了使 Azure 和 Azure Stack 开发和运维保持一致性,微软基本沿用了 Azure Resource Manager 的指令.包括在下一章节,我们创建虚机使用的代码都符合这个规范.

回归正题,使用下列代码登录 Azure Stack:

# Login Administrator Account
Login-AzureRmAccount -EnvironmentName "AzureStackAdmin" -TenantId $TenantID

此时会弹出一个对话框,需要我们输入 Azure Stack 管理员账户密码:

Azure Stack

对于 ADFS 模式:Azure Stack 上传镜像需要通过 azurestackadmin@azurestack.local 账户进行上传,不能使用 azure\\AzureStackAdmin 域账户.

对于 AAD 模式:需要提供安装 Azure Stack 是提供的国际版 Azure 账户密码.

对于 Windows 镜像,我们使用下列代码进行安装:

$ISOPath = ""
New-Server2016VMImage -ISOPath $ISOPath -TenantId $TenantID -EnvironmentName "AzureStackAdmin"

对于 Linux 镜像,我们使用这段代码进行安装:

$ISOPath = ""
Add-VMImage -publisher "Canonical" -offer "UbuntuServer" -sku "14.04.3-LTS" -version "1.0.1" -osType Linux`  
-osDiskLocalPath $ISOPath -tenantID $TenantId -EnvironmentName "AzureStackAdmin"

由于镜像的容量通常比较大,所以通过远程 VPN 的方式上传镜像会比较慢.这边有个讨巧的方法,通过 RDP 登录 Azure Stack MAS-CON01 的虚拟机.现将镜像拷过去,然后在该虚拟机内进行安装.

当我们运行相关代码之后,PowerShell 就会显示出如下信息.通过对 Azure Stack 的组件分析,我们可以了解到.上传镜像的过程分为三步:

PowerShell

完成镜像上传之后,将自动创建 Gallery items 用来通过 GUI 界面让用户通过自服务的形式创建资源.相关自定义镜像创建流程请关注后续推出的《Azure Stack 技术深入浅出系列》第四篇.下图显示的是镜像在上传的过程,我们可以看到 Azure Stack Tools 显示了一个 JSON 格式的信息组,这是上传之后镜像的基本信息.

Azure Stack运维工具Azure Stack Tools的使用及实战

在下面的截图中,我们可以看到上传到镜像会放置在一个叫 addvmimagestorageaccount 存储账号中一个 blob 存储中的 container 里面.

container

当结束上述所有过程之后,我们可以看到 StatusCode 显示 Created,说明镜像已经上传成功.此时我们回到 Azure Stack 门户页面,可以随心所欲的创建各种定制化的镜像.

Azure Stack运维工具Azure Stack Tools的使用及实战

部署虚机

在 Azure Stack 部署虚机与在 Azure 上面部署虚机一样,我们通过以下代码通过 Azure Stack 部署.

首先,我们创建资源组.

# Create a resource group
New-AzureRmResourceGroup -Name 'myResourceGroup1' -Location "local"

注意:-Location 的参数需要使用 local 或用户自定义区域位置信息,与 Azure 公有云有所区别

然后创建虚拟网络以及子网,并为网络配置公共 IP.

############### Create networking resources ##############################

# Create a subnet configuration
$subnetConfig = New-AzureRmVirtualNetworkSubnetConfig -Name 'mySubnet01'`
                -AddressPrefix 10.0.1.0/24

# Create a virtual network
$vnet = New-AzureRmVirtualNetwork -ResourceGroupName 'myResourceGroup1'`
        -Location 'local' -Name myResourceGroup1-vnet`
        -AddressPrefix 10.0.0/16 -Subnet $subnetConfig

# Create a public IP address and specify a DNS name
$pip = New-AzureRmPublicIpAddress -ResourceGroupName 'myResourceGroup1'`
       -Location 'local' -AllocationMethod Static`
       -IdleTimeoutInMinutes 4 -Name "test1-ip"

添加完公网 ip 后,我们为虚机添加网络安全组.

# Create a virtual network card and associate with public IP address and NSG
$nic = New-AzureRmNetworkInterface -Name 'myNic'`
       -ResourceGroupName 'myResourceGroup1' -Location 'local' `
       -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id`
       -NetworkSecurityGroupId $nsg.Id

# Create an inbound network security group rule for port 3389
$nsgRuleRDP = New-AzureRmNetworkSecurityRuleConfig`
              -Name myNetworkSecurityGroupRuleRDP  -Protocol Tcp `
              -Direction Inbound -Priority 1000 -SourceAddressPrefix *`
              -SourcePortRange * -DestinationAddressPrefix * `
              -DestinationPortRange 3389 -Access Allow

# Create an inbound network security group rule for port 80
$nsgRuleWeb = New-AzureRmNetworkSecurityRuleConfig -Name`
              myNetworkSecurityGroupRuleWWW  -Protocol Tcp `
              -Direction Inbound -Priority 1001 -SourceAddressPrefix *`
              -SourcePortRange * -DestinationAddressPrefix * `
              -DestinationPortRange 80 -Access Allow

# Create a network security group
$nsg = New-AzureRmNetworkSecurityGroup -ResourceGroupName myResourceGroup1`
       -Location local -Name test1-nsg -SecurityRules $nsgRuleRDP,$nsgRuleWeb

# Create a virtual network card and associate with public IP address and NSG
$nic = New-AzureRmNetworkInterface -Name myNic` 
       -ResourceGroupName myResourceGroup1 -Location local `
       -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id`
       -NetworkSecurityGroupId $nsg.Id

最后在 Azure Stack 中添加虚机.

################################ Create VM ##############################

# Define a credential object
$cred = Get-Credential

# Create a virtual machine configuration
$vmConfig = New-AzureRmVMConfig -VMName myVM -VMSize Standard_D1 | `
    Set-AzureRmVMOperatingSystem -Windows -ComputerName myVM `
    -Credential $cred | Set-AzureRmVMSourceImage -PublisherName `
    MicrosoftWindowsServer -Offer WindowsServer -Skus 2016-Datacenter `
    -Version latest | Add-AzureRmVMNetworkInterface -Id $nic.Id 

New-AzureRmVM -ResourceGroupName myResourceGroup -Location 'local' -VM $vmConfig

最后我们会在 Azure Stack 界面上看到如下新建资源,说明已经添加成功.

Azure Stack运维工具Azure Stack Tools的使用及实战

部署模板

在 Azure Stack 模板工具和权限工具的共同作用下,我们可以通过修改从 Azure 上获取的模板,将其转化成 Azure Stack 的模板,从而促进 Azure Stack 的更好开发.

对于 Azure Stack 的 ARM 模板参数,例如 Location、存储端点等时,目前的使用的范例中特指 POC 环境 (POC 环境端点默认是 azurestack.external、Location 默认是 Local),如果是生产环境,这些都是客户自己定义,每个 Azure Stack 实例的 Location 和端点并不会相同.

Azure Stack运维工具Azure Stack Tools的使用及实战

emplate Validator Tool(模板验证工具): 用于 Azure 和 Azure Stack 的资源和配置有所不同,所以 Azure Stack Tools 中提供了模板验证工具.它的主要功能在于验证从 Azure 中移植的 ARM 是否正确、是否符合 Azure Stack 的规范.我们可以在 Azure Stack Template 中找到符合 Azure Stack 规范的模板.

Azure Stack 规范如下:
1、 Azure Stack 资源位置(location)
在 ARM 模板中通常从资源组中获取 Azure 服务的位置,通过 -location 来确定模板所要使用资源的物理位置.在 Azure 中,我们会获得 40 多个位置,如 “chinaeast、chinanorth、westus”等.在 Azure Stack 环境下,默认为“local”或者用户自定义位置,如下面例子:
{ "resources":[
        {
            "name": XXXXXXXX,           "type": XXXXXXXXXXXXXX,           "apiVersion": XXXXXXXXXXXXXXXX,           "location": "[resourceGroup().location]",//Incorrect Version: chinaeast
            "comments": "This storage account is used to store the VM disks",           "properties":{
                "accountType": "Standard_LRS"
            }
        }
    ]
}
 2、Blob 存储 Endpoint
在 Azure 中,我们使用*.blob.core.windows.net 来表示 Azure 的 blob 存储端点.而在 Azure Stack 中,我们使用 *.blob.local.azurestack.external 来标识存储地址
"osDisk":
{
    "name": "osDisk",   "vhd": {
        "uri": "[
            concat('Microsoft.Storage/storageAcounts/',           parameters('newStroageAccountName'),//'.blob.core.windows.net'
            variables('vmStorageAccountContainerName'),'/'
            variables('OSDiskName'),'.vhd')
        ]",   }
    "caching": "ReadWrite",   “createOption”: "FromImage"
}

3、提供最新 API 版本管理

Azure Stack 的底层技术栈始终遵循 Azure 的技术,并使用 Azure 最新的 API 版本.下表为目前使用的最新 API 接口.更多最新的 API 版本差异请查看官网文档:

https://docs.microsoft.com/en-us/azure/azure-stack/azure-stack-vm-considerations

https://docs.microsoft.com/en-us/azure/azure-stack/azure-stack-acs-differences

Azure Stack运维工具Azure Stack Tools的使用及实战

 4、提示支持资源的类型

同时 Azure Stack 还会校验资源的 sku 和镜像、扩展等给了开放的功能.

Policy Tool(权限策略工具):随着 Azure Stack 开发的不断深入,越来越多 Azure 提供的 IaaS、PaaS 服务也会逐步在 Azure Stack 中开发,其中不乏无服务框架(App function)、区块链(Blockchain)等.在 Azure Stack 众多的服务中,如果我们希望限定某个资源组的服务和资源使用量,我们可以导入下面是 Policy 文件.

"policyRule": {
      "if": {
        "not": {
          "field": "location",         "in": "[parameters('allowedLocations')]"
        }
      },     "then": {
        "effect": "deny"
      }
    }

而在 Azure Stack Tools 中我们可以到使用 Azure Stack Tools 中的 AzureStack.Policy.psm1 文件

Import-Module .\AzureStack.Policy.psm1

Login-AzureRmAccount
$s = Select-AzureRmSubscription -SubscriptionName "<sub name>"
$subId = $s.Subscription.SubscriptionId

$policy = New-AzureRmPolicyDefinition -Name AzureStack -Policy (Get-AzureStackRmPolicy)

New-AzureRmPolicyAssignment -Name AzureStack -PolicyDefinition $policy -Scope /subscriptions/$subId

#Specify the resource group where you would like to apply the policy
$rgName = 'AzureStack'
New-AzureRmPolicyAssignment -Name AzureStack -PolicyDefinition $policy -Scope /subscriptions/$subID/resourceGroups/$rgName

Remove-AzureRmPolicyAssignment -Name AzureStack -Scope /subscriptions/$subId/resourceGroups/$rgName
Remove-AzureRmPolicyAssignment -Name AzureStack -Scope /subscriptions/$subId

其他工具

在 Azure Stack Tool 中,提供了一套管理员工具.正如之前提及的上传镜像功能一样,在管理员工具中有服务管理模块(ServiceAdmin)、计算模块(ComputeAdmin)、设备模块(InfraAdmin).

  • 服务管理模块: 管理员可以通过该工具创建预定(offer)、计划(plan)和引用(quota)等服务模块.
  • 计算模块:添加和删除虚机镜像.
  • 设备模块:在 Azure Stack 设备中提供监控界面和数据接口

总结

通过这一讲,我们了解了 Azure Stack Tools 的基本功能,希望用户阅读之后,能够使用 Azure Stack Tools 上传虚机镜像和创建虚拟机.对于 Azure Stack 的管理员,能够通过 Azure Stack Tools 对 Azure Stack 进行资源的限制、订阅中 offer 的分发以及对 Azure Stack 基础设施的监控有一定的帮助.相信在使用 Azure Stack Tools 的过程中,童鞋们可以体会 Azure 和 Azure Stack 一致性体验的理念.

文章来自微信公众号:细说云计算

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


起步 处理器架构,参考 x86是指intel的开发的一种32位指令集 intel和amd早期的cpu都支持这种指令集 AMD比Intel率先制造出了商用的兼容x86的CPU,AMD称之为AMD64 Intel选择了设计一种不兼容x86的全新64为指令集,称之为IA-64,后来支持AMD64的指令集,
pscp pscp -P 22 C:\work\test.txt root@192.168.1.5:/home/data pscp -P 22 root@192.168.1.5:/home/data/test.txt C://work// 检索 find / -name default.config
文件处理 ls -a # 显示所有文件 ls -l # 显示详细信息 ls -d # 显示路径 mkdir /目录名称 # 创建目录 cd /目录名称 # 切换目录 pwd # 显示当前路径 rmdir /目录名称 # 删除目录 cp -rp [目录名称] [目标目录] # 复制目录到目标目录 cp
准备一台电脑(我就用联想拯救者r7000演示) 参考博客制作启动盘 插上U盘,启动电脑,一直按F2 进入如下页面后,将U盘设置为第一启动项,点击exit,保存并退出 之后进入如下页面,选择第三项 进入如下页面,选择第四项 进入如下页面,选择第一项,选中后,先不要点Enter 按e键,将inst.st
认识 Linux系统是参考了UNIX系统作为模板开发的,但没有使用UNIX的代码;是UNIX的一种,但不是衍生版 在Linux内核的基础上开发是发行版 分区 逻辑分区永远从5开始 步骤 挂载:可理解为分配盘符,挂载点即是盘符名;不同之处:Linux中是以空目录名称作为盘符 Hda 第一块硬盘 Hda
文件处理命令 以 . 开头的文件是隐藏文件 以 - 开头表示这是一个文件 以 d 开头表示是一个目录 以 l 开头表示是一个软链接 第一个root是所有者,第二个root是所属组 ls -h 以文件默认大小后缀 显示 ls -i 查看i节点(唯一标识) 所有者:只能有一个,可变更 所属组:只能有一个
参考 01 02 03 前提环境 本地安装VirtualBox,并安装CentOS8,配置网络后,window系统上putty能连接到CentOS8服务器 配置步骤 右键服务器复制 启动复制后的服务器,查看ip和hostname发现和原来的服务器一样,需要修改 hostname # 查看主机名 vi
文件搜索命令 星号匹配任意字符,问号匹配任意单个字符 -iname 根据文件名查找且不区分大小写 -ok 命名会有一个询问的步骤 如果没有找到指定文件,可输入命令:updatedb 更新文件资料库;除tmp目录不在文件资料库收录范围之内 locate -i 文件名 # 检索时不区分大小写 which
安装环境 安装最新版的Virtual Box,点击安装 下载centos8镜像 创建虚拟机,可参考 选择下载到本地的镜像 设置启动顺序 点击启动 启动过程中报错:“FATAL:No bootable medium found!” 1.没有选择iso镜像 2.光驱没有排在第一位置 3.镜像只能选择x8
Linux严格区分大小写 所有内容文件形式保存,包括硬件 Linux不靠扩展名区分文件类型 挂载:将设备文件名和挂载点(盘符)连接的过程 Linux各个目录的作用 bin表示二进制 服务器注意事项 远程服务器不允许关机,只能重启 重启时应该关闭服务 不要在服务器访问高峰运行高负载命令 远程配置防火墙
IDE连接Linux,上传下载文件 参考1 参考2 连接Linux 上传下载文件 本地项目打包后上传 查看是否上传成功,右键下载 补充 后端项目开发完成后,需clean掉临时文件target文件夹,且只推送修改过的文件 前端项目开发的过程中,需要在每个子组件中使用scoped,确保每个子组件中的编码
起步 LTS与普通版本的区别 LTS版本的发布周期更长,更加稳定 安装jdk sudo mkdir /usr/lib/jvm # 在Ubuntu中创建目录 pscp D:\安装包\linux源码包\jdk-8u291-linux-x64.tar.gz chnq@192.168.0.102:/tmp
前言 最近在b站上看了兄弟连老师的Linux教程,非常适合入门:https://www.bilibili.com/video/BV1mW411i7Qf 看完后就自己来试着玩下,正好手上有台空闲的电脑就尝试不使用虚拟机的方式安装Linux系统 安装步骤 制作启动盘 下载ISO镜像,我这里下载的是Cen
新建虚拟电脑 设置内存和处理器 设置硬盘大小 完成 设置 查看光驱 设置启动顺序 点击启动 选择第1项 进入图形安装界面 选择安装位置,开始安装 设置root密码 重启 登录 查看本地文件夹 配置网络,点击设置 查看宿主机ip C:\Users\ychen λ ipconfig 无线局域网适配器 W
源码包安装需手动下载后安装 二进制包则在package目录下 rpm命令管理rpm包 若某个rpm包依赖于某个模块,需要到网站www.rpmfind.net查询该模块依赖的包,安装这个包后自动安装模块,之后就能安装rpm包了 安装升级时使用包全名 查询卸载时使用包名 虚拟机中的Linux系统安装rp
首先进入命令模式,再输入以下命令 命令模式用于输入命令 插入模式可对文件编写操作 编辑模式下的命令是在冒号后输入 :12, 15d # 删除指定范围的行,这里是删除12到15行 :n1,n2s/old/new/g ## 表示从n1行到n2行,old表示旧的字符串 vim使用小技巧:自定义快捷键,如快
使用源码包安装,需要自己指定安装位置,通常是 /usr/local/软件名/ linux中要想启动执行文件,应使用绝对路径 /绝对路径/rpm包名 start ## 执行方式一 service rpm包名 start ## 执行方式二 使用源码包安装后,由于自定义安装路径,就不能使用service命
网络命令 在收邮件的用户中,输入 mail 可查看邮件信息,输入序列号查看详细信息 在mail命令下,输入h 查看所有邮件的列表 输入:d 序列号 # 删除邮件 last # 统计所有用户登录或重启时间,用于日志查询 lastlog # 显示包括未登录用户的登录时间 lastlog -u 用户id
若要使用yum管理,必须能连接网络,首先配置网络IP 进入yum源文件中启动容器 使用yum源头安装rpm包不需要进入package路径,同时也不需要使用包全名,会有yum自动管理 安装软件组
简介 client即是本机安装的docker,相当于git Docker_host相当于centos系统 registry则是docker仓库,相当于GitHub 镜像用于创建docker容器,一个镜像可以创建多个docker容器 容器是由镜像创建的运行实例,(镜像相当于类,容器相当于类创建的对象)