我创建了一个地址为192.168.0.4的Azure DNS服务器
我创建了一个地址空间为192.168的虚拟网络.我将Subnet-1更改为
starting IP 192.168.10.0
Address Count 64
Address Range 192.168.10.0 - 192.168.10.63
Run Code Online (Sandbox Code Playgroud)
我使用PowerShell在单个云服务中创建了3个虚拟机映像.
$ADVM = New-AzureVMConfig -Name $ADVMName -InstanceSize Small -ImageName $ADVMImageName.ImageName |
Add-AzureProvisioningConfig -Windows -Password $AdminPassword |
Add-AzureDataDisk -CreateNew -DiskSizeInGB 10 -DiskLabel 'datadisk2' -LUN 0 |
Add-AzureEndpoint -Protocol tcp -LocalPort 80 -PublicPort 80 -Name 'web' -LBSetName 'lbweb' -ProbePort 80 -ProbeProtocol http -ProbePath '/'
$SQLVM = New-AzureVMConfig -Name $SQLVMName -InstanceSize Medium -ImageName $SQLImageName.ImageName |
Add-AzureProvisioningConfig -Windows -Password $AdminPassword |
Add-AzureDataDisk -CreateNew -DiskSizeInGB 50 -DiskLabel 'datadisk2' -LUN 0 | …
Run Code Online (Sandbox Code Playgroud) 重新引导Azure虚拟机时,其公共虚拟IP地址不会更改.但是,如果关闭VM然后重新启动它,它将收到不同的公共虚拟IP地址.
此VM服务器托管最终用户可能需要为其创建防火墙规则的服务.这可能要求他们拥有服务器的公共IP地址.
有没有一种方法可以保持相同的公共虚拟IP地址?Microsoft是否可以在每个帐户/每个VM /每个订阅的基础上允许此操作?
谢谢
我在Azure上运行了一个FTP服务器.我不得不为"数据"连接手动添加20个端点.
这很痛苦.
当然,以某种方式将端点批量添加到Azure VM有更好的方法吗?如果是这样,有人可以列出一些指示吗?我对任何事都持开放态度.
例如.我很想创造
TCP public port 61020 - private port 61020
至
TCP public port 61100 - private port 61100
嗯....
我正在使用版本1.0.1 Azure PowerShell模块,似乎有一些我无法弄清楚的重大变化.
我已登录Azure,Get-AzureSubscription cmdlet返回我的两个帐户.但是,即使Azure门户正确报告了大约十二个,执行Get-AzureVM也不会返回任何内容.
我究竟做错了什么?
谢谢
有没有办法在Azure门户内就地更新Azure VM的操作系统?
即从Windows Server 2012 R2到Windows Server 2016
所以我有以下 Python3 脚本来列出所有虚拟机。
import os, json
from azure.mgmt.compute import ComputeManagementClient
from azure.mgmt.network import NetworkManagementClient
from azure.mgmt.resource import ResourceManagementClient, SubscriptionClient
from azure.common.credentials import ServicePrincipalCredentials
credentials = ServicePrincipalCredentials(
client_id="xxx",
secret="xxx",
tenant="xxx"
)
resource_client = ResourceManagementClient(credentials, "my-subscription")
compute_client = ComputeManagementClient(credentials, "my-subscription")
network_client = NetworkManagementClient(credentials, "my-subscription")
for vm in compute_client.virtual_machines.list_all():
print("\tVM: {}".format(vm.name))
Run Code Online (Sandbox Code Playgroud)
但由于某种原因,我收到以下错误:
Traceback (most recent call last):
File "/Users/me/a/azure-test.py", line 17, in <module>
for vm in compute_client.virtual_machines.list_all():
...
File "/usr/local/lib/python3.8/site-packages/azure/core/pipeline/policies/_authentication.py", line 93, in on_request
self._token = self._credential.get_token(*self._scopes)
AttributeError: 'ServicePrincipalCredentials' object has no attribute …
Run Code Online (Sandbox Code Playgroud) python azure python-3.x azure-virtual-machine azure-sdk-python
我正在 azurerm_virtual_machine 中通过计数创建 4 个虚拟机,但我只想创建一个公共 IP 并将其与第一个虚拟机关联?这可能吗?如果可以的话怎么办?
下面是我的模板文件
resource "azurerm_network_interface" "nics" {
count = 4
name = ...
location = ...
resource_group_name = ...
ip_configuration {
subnet_id = ...
private_ip_address_allocation = "Static"
private_ip_address = ...
}
}
resource "azurerm_public_ip" "public_ip" {
name = ...
location = ...
resource_group_name = ...
}
resource "azurerm_virtual_machine" "vms" {
count = 4
network_interface_ids = [element(azurerm_network_interface.nics.*.id, count.index)]
}
Run Code Online (Sandbox Code Playgroud)
我已经解决了以下问题,但它们创建了多个公共 IP 并将它们添加到所有虚拟机中。
azure azure-virtual-machine terraform terraform-provider-azure azure-public-ip
我受到一个软件的限制,该软件在每个程序运行实例中使用一个核心.它将运行SQL服务器工作队列并将结果存入服务器.因此,我运行的实例越多,整个项目的完成速度就越快.我曾经使用过Azure VMs,可以通过两种方式加快这一过程.
1)我可以在单个核心虚拟机上运行该应用程序,克隆该虚拟机并在我认为必要的情况下运行它,以充分加快工作速度.
要么
2)我可以在8核VM上运行应用程序8次...再次克隆该VM并在我认为必要的情况下运行它以充分加快工作.
我在测试中注意到,添加8个单核VM和1个8核VM的速度大致相同.假设这是真的,拥有单核机器的价格会更好吗?
定价有点神秘,无论是真正的CPU使用时间,还是什么.使用1-8核心方法更容易,因为旋转机器并将它们拆除需要时间,但我想这可以自动化.
从某些定价页面看,多核单核VM方法的成本会降低吗?
附带问题:我可以像一些电源shell脚本一样继续添加某个映像的虚拟机并运行应用程序,然后在接近完成后开始关闭它们吗?在生成虚拟机后,是否有一些方法可以启动应用程序而无需远程访问每个虚拟机并运行它?
我在Azure上有一个Ubuntu虚拟机.我在azure管理门户中添加了一个enpoint:
NAME PROTOCOL PUBLIC PORT PRIVATE PORT LOAD-BALANCED SET
---------------------------------------------------------------
HTTP TCP 80 80 -
Run Code Online (Sandbox Code Playgroud)
我试着听听它:
var http = require('http');
var server = http.createServer(function (request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.end("Hello World\n");
});
server.listen(80);
Run Code Online (Sandbox Code Playgroud)
它可以工作,如果我ssh并卷曲它:
$ curl localhost:80
Hello World
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试访问它subdomain.cloudapp.net
,则不会有任何回复.当公共IP地址访问时,它也不返回任何内容.
我应该使用哪个端口和地址监听节点应用程序以从外部访问它?
我是否需要另一个Azure服务才能访问VM?
如果防火墙出现问题,我将如何启用公共访问?
编辑:
我检查了是否有防火墙,但没有:
$ sudo ufw status
[out :: subdomain.cloudapp.net] Status: inactive
Run Code Online (Sandbox Code Playgroud)
编辑2:
配置了一个不同的ubuntu vm,但它仍然不起作用.试图重启iptables,但没有服务已知:
$ sudo service iptables restart
iptables: unrecognized service
Run Code Online (Sandbox Code Playgroud)
iptables是:
$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt …
Run Code Online (Sandbox Code Playgroud) 我对在Azure中负载均衡2个以上的Windows VM感兴趣.不过,我的主要要求是每个VM之间的'uploads'文件夹需要保持一致.此文件夹中的文件由我们的管理员用户FTP,然后他们需要在C#MVC Web应用程序中选择这些文件.由于您可以通过FTP连接到一个VM,但Web连接可能是另一个,因此上传必须集中.
看起来好像目前处于预览状态的新Azure文件会有所帮助,因为它们让我设置了每个虚拟机都可以访问的共享驱动器.我的想法是FileZilla Server允许FTP到达这个共享的"驱动器",Web应用程序将访问它以显示内容.
我已经注册了Azure文件预览,并设置了共享,为了实验,将其持久映射到Drive Z. 我还创建了一个新用户,并确保他们也有与Z相同的驱动器的持久映射.
但我似乎无法在远程桌面之外做任何事情.FileZilla尽管已将其服务设置为使用此新帐户登录,但不会显示此驱动器的内容,也不会向其写入任何内容.同样,尽管将Passthrough Authentication切换到虚拟文件夹的新帐户,但我的Web App无法访问文件内容.
有没有人知道通过网络路径或驱动器号访问此驱动器的方式?这是不可能的Azure文件,因为它们是?是否有任何其他解决方案可以跨虚拟机共享一些blob,但将其视为本地驱动器或网络共享?
[UPDATE]
这可能有所帮助.设置共享,并在cmd提示符下使用cmdkey和net use运行特殊创建的用户(如http://blogs.msdn.com/b/windowsazurestorage/archive/2014/05/27/persisting-中所述 - connections-to-microsoft-azure-files.aspx),如果我将IIS中的虚拟文件夹指向此共享,使用创建的特定帐户和测试连接,我得到:测试:身份验证(绿色勾选;"指定的用户凭据是有效的")测试:授权(红叉;"路径不存在或路径中的环境变量无法扩展以验证它是否存在.")
虽然仍然在runas cmd提示符下,但我可以访问共享,因此它不是特定的权限问题.由于某种原因,似乎IIS无法使用该用户访问共享.Azure文件的限制是我无法专门授予该共享中文件夹的任何类型的权限.
azure ×9
dns ×1
endpoint ×1
node.js ×1
powershell ×1
python ×1
python-3.x ×1
tcp ×1
terraform ×1
ubuntu ×1