Machine: Driver Azure - versi pengelola sumber daya

Dibuat pada 5 Jan 2016  ·  69Komentar  ·  Sumber: docker/machine

Saya rasa saya benar saat mengatakan bahwa dukungan saat ini untuk mesin buruh pelabuhan di Azure menggunakan model penerapan Klasik. Akan sangat bagus untuk mendukung model Resource Manager juga (karena itulah yang direkomendasikan MS untuk penerapan baru).

driveazure kinenhancement

Semua 69 komentar

: +1:

+1

+1

Ada rencana untuk memindahkan penyedia Azure mesin buruh pelabuhan untuk menggunakan Azure Resource Manager - lihat # 496

@lizrice Saat ini saya sedang aktif mengerjakannya sendiri. Kami menyadari permintaan untuk ini, oleh karena itu mengharapkan sesuatu segera. Saya akan memperbarui utas ini setelah kami memiliki sesuatu yang baru.

Itu berita bagus @ahmetalpbalkan :-)

+1

Ini akan sangat membantu! Terima kasih telah aktif mengerjakannya.

Pasti membutuhkan ini. Juga harus menghindari penggunaan sertifikat untuk mengautentikasi, kecuali menggunakan Azure Active Directory Service Principal. Ada kemajuan @ahmetalpbalkan?

Bersulang,
Trevor Sullivan

@ pcgeek86 kami tidak akan melakukan omong kosong utama layanan. Proses authn akan terlihat persis seperti otentikasi CLI lintas platform Azure ( "azure login" perintah). Setiap 2 minggu, Anda akan diminta untuk membuka jendela browser dan mengklik tombol untuk mengotorisasi aplikasi.

@ahmetalpbalkan Luar biasa, jadi Anda juga akan memiliki parameter --username , seperti azure-clil?

@ pcgeek86 , tidak. Azure CLI tidak memerlukan parameter nama pengguna. Itu ada di sana untuk kompatibilitas mundur.

@ahmetalpbalkan saya tidak bilang wajib. Parameter --username memungkinkan Anda menentukan nama pengguna Azure Active Directory (AAD). Bagaimana ini "kompatibilitas mundur?" Apa yang Anda usulkan untuk implementasi akhir?

Otentikasi berbasis sertifikat Azure Service Management (ASM) adalah "kompatibilitas mundur."

@ pcgeek86 hmm, saya tidak pernah menyadari ini digunakan untuk nama pengguna AAD. Saat Anda membuka https://aka.ms/devicelogin , apakah itu memungkinkan Anda menentukan nama pengguna AAD Anda di sana? Jika tugas yang sama dapat dilakukan tanpa azure login (tanpa --username ) saya bermaksud untuk tetap seperti itu.

@ahmetalpbalkan Anda mungkin perlu berada dalam mode ARM ( azure config arm ) untuk menggunakan otentikasi AAD dengan ARM. Saya tidak terlalu sering menggunakan "mode" ASM.

Ya, Anda dapat menggunakan nama pengguna AAD dengan https://aka.ms/devicelogin. Namun, saya lebih suka menghindari keluar ke browser, dan sebagai gantinya menentukan nama pengguna dengan --username . Berfungsi lebih baik dalam skenario hanya teks. :)

Jika tugas yang sama dapat dilakukan tanpa login azure (tanpa --username) saya bermaksud untuk tetap seperti itu.

Jadi, hanya untuk memastikan saya mengerti dengan benar, apakah Anda bermaksud meminta pengguna menggunakan browser web untuk menyelesaikan autentikasi, alih-alih mengetik kata sandi mereka di baris perintah?

Dengan akun yang membutuhkan 2fa, Anda harus Auth dengan cara apa pun. Saya tidak jelas ini banyak pengoptimalan untuk kasus 2fa.

@squillace Untuk pengguna otentikasi multi-faktor, tentu. Tetapi mengapa hanya melayani satu kelompok pengguna? Dugaan saya adalah mayoritas tidak akan menggunakan MFA.

Pada titik itu, itu hanya mempersulit semua orang, dan bukankah Anda akan membuat orang kesal dengan memaksa mereka menggunakan browser web untuk mengautentikasi alat baris perintah?

Sebenarnya, mengapa tidak melangkah lebih jauh, dan mendukung MFA dari baris perintah?

Anda tidak boleh mengumpulkan nama pengguna dan kata sandi di luar layar login AAD biasa. Ini praktik yang tidak aman dan buruk. Ditambah lagi, secara teknis terlalu banyak skenario yang harus dibahas untuk membuatnya benar-benar berfungsi. 2FA tidak mungkin tanpa membuka browser misalnya ADFS prematur, fob aman, autentikasi smartcard dll ...

Saya tidak ingin melayani hanya satu kelompok, tetapi skenario dasar harus mencakup semua.

Dikirim dari Outlook Mo bilehttps: //aka.ms/blhgte

Pada Kamis, 25 Feb 2016 pukul 10:11 -0800, "Trevor Sullivan" < [email protected] [email protected] > menulis:

@squil lacehttps: //github.com/squillace Untuk pengguna otentikasi multi-faktor, tentu. Tetapi mengapa hanya melayani satu kelompok pengguna? Dugaan saya adalah mayoritas tidak akan menggunakan MFA.

Balas email ini secara langsung atau lihat di Gi tHubhttps: //github.com/docker/machine/issues/2742#issuecomment -188910314.

@LoungeFlyZ Jadi, apakah Anda mengatakan azure xPlat CLI harus menghapus parameter --username ? Itu akan menjadi perubahan yang signifikan dan menghancurkan, tetapi mungkin saja.

Mungkin ya. Saya terkejut mereka masih memilikinya ... tetapi saya mengerti mengapa.

@LoungeFlyZ Bagaimana dengan pengguna baris perintah? Apakah menurut Anda ini akan mengganggu mereka?

@ pcgeek86 Ya tentu saja. Ini jauh kurang nyaman saya mengerti itu. Tetapi meminta alat apa pun untuk mengumpulkan nama pengguna dan kata sandi Anda adalah bencana yang menunggu untuk terjadi.

@LoungeFlyZ Saya juga setuju di sana. Tampaknya kami berada di titik konflik dari perspektif keamanan dan kegunaan. Berpikir jauh di luar kotak, apa yang akan menjadi solusi ideal untuk masalah keamanan dan kegunaan yang telah kami sebutkan di atas?

@ pcgeek86 Saya mengirim email Anda binary drop, silakan coba dan lmk jika Anda merasa tidak praktis.

Hai teman-teman, kami akhirnya hampir memiliki driver Azure baru. Kami sedang memperbaiki beberapa hal dan saya akan segera mengirimkan permintaan penarikan. Sementara itu, Anda dapat mencoba versi baru sebelum dirilis dan memberikan umpan balik. Silahkan download dibawah ini:

mencoba darwin sekarang .. bersih. Bagus.

Ahmet, sangat, sangat bersih.

~ / workspace / ahmet-machine ‹ruby-2.2.1› $ ld create -d azure \ 1 ↵
--azure-subscription-id\
--azure-ssh-user ops \
--azure-resource-group ahmetsmachine \
--azure-location eastus \
ahmetsmachine
Menjalankan pemeriksaan pra-buat ...
(ahmetsmachine) Microsoft Azure: Untuk masuk, gunakan browser web untuk membuka halaman https://aka.ms/devicelogin. Masukkan kodenyauntuk mengotentikasi.
(ahmetsmachine) Menyelesaikan pemeriksaan pra-buat mesin.
Membuat mesin ...
(ahmetsmachine) Mengkueri grup sumber daya yang ada ... name = "ahmetsmachine"
(ahmetsmachine) Membuat grup sumber daya ... location = "eastus" name = "ahmetsmachine"
(ahmetsmachine) Membuat set ketersediaan ... name = "docker-machine"
(ahmetsmachine) Membuat grup keamanan jaringan ... name = "ahmetsmachine-firewall" location = "eastus"
(ahmetsmachine) Menanyakan apakah jaringan virtual sudah ada ... name = "docker-machine-vnet" location = "eastus"
(ahmetsmachine) Membuat subnet ... cidr = "" name = "docker-machine" vnet = "docker-machine-vnet"
(ahmetsmachine) Membuat alamat IP publik ... name = "ahmetsmachine-ip"
(ahmetsmachine) Membuat antarmuka jaringan ... name = "ahmetsmachine-nic"
(ahmetsmachine) Membuat akun penyimpanan "" di eastus
(ahmetsmachine) Membuat Mesin Virtual ... name = "ahmetsmachine" location = "eastus" size = "Standard_A2" username = "ops" osImage = " canonical: UbuntuServer : 14.04.3- LTS: latest "
Menunggu mesin untuk dijalankan, ini mungkin memerlukan beberapa menit ...
Mendeteksi sistem operasi dari instance yang dibuat ...
Menunggu SSH tersedia ...
Mendeteksi penyedia ...
Menyediakan dengan ubuntu (pemula) ...
Menginstal Docker ...
Menyalin sertifikat ke direktori mesin lokal ...
Menyalin sertifikat ke mesin jarak jauh ...
Mengatur konfigurasi Docker pada daemon jarak jauh ...
Memeriksa koneksi ke Docker ...
Docker sudah aktif dan berjalan!
Untuk melihat cara menghubungkan Klien Docker Anda ke Mesin Docker yang berjalan di mesin virtual ini, jalankan:buruh pelabuhan-mesin-Darwin-x86_64 env ahmetsmachine

Saya akan mencoba versi Windows dan Linux sekarang. Bagus. Info langsung muncul. Saya juga sangat menyukai lingkungan dasar bersih dan pilihan port Anda. Terima kasih!

Saat ini ada masalah di windows, tidak diautentikasi. Saya sarankan mencoba dengan platform lain untuk saat ini. Terima kasih @squillace!

Oke, saya akan melakukan keluarga debian.

Ya, bug di Windows terkait dengan token yang disalin ke cache token. Kirimkan detailnya ke @ahmetalpbalkan tadi malam.

Bersulang,
Trevor Sullivan

bekerja dengan sempurna pada mint 17.3.

@ pcgeek86 silakan coba build baru ini untuk windows: http://cl.ly/3k2d0g2B3j0o/docker_machine_azure_rc2.zip masalah seharusnya sudah diperbaiki sekarang. Itu berhasil untuk saya. (Meskipun masih tidak stabil, kami akan segera memperbaikinya di Azure SDK dan mengimpornya di sini. Saya akan terus menyediakan build di sini saat kita melanjutkan.)

Silakan coba otentikasi dengan semua jenis jenis akun aneh (Akun Microsoft, AAD ...) jika Anda memilikinya. Pendekatan otentikasi ini hanya berfungsi dengan akun AD multi-faktor saya serta akun pribadi saya. Saya menghargai masukan Anda terkait hal ini, saya rasa kita bisa melakukannya dengan benar pada percobaan pertama! :tersenyum:

Saya tidak mencobanya dengan pribadi; Saya akan melakukannya sekarang.

Saya baru saja mencoba dengan biner sebelumnya dalam masalah ini di OS X dan mendapatkan:

docker-machine-azure create -d azure --azure-location "North Europe"  --azure-resource-group "career-planner" --azure-subscription-id {ID} azure
Running pre-create checks...
(azure) Microsoft Azure: To sign in, use a web browser to open the page https://aka.ms/devicelogin. Enter the code DRHSTFLSD to authenticate.
(azure) Completed machine pre-create checks.
Creating machine...
(azure) Querying existing resource group...  name="career-planner"
(azure) Resource group "career-planner" already exists.
(azure) Creating availability set...  name="docker-machine"
(azure) Creating network security group...  name="azure-firewall" location="North Europe"
(azure) Querying if virtual network already exists...  name="docker-machine-vnet" location="North Europe"
(azure) Creating subnet...  name="docker-machine" vnet="docker-machine-vnet" cidr="192.168.0.0/16"
(azure) Creating public IP address...  name="azure-ip"
(azure) Creating network interface...  name="azure-nic"
(azure) Creating storage account "vhdsxfxg6xxswwqjih00e7co" in North Europe
(azure) Creating Virtual Machine...  name="azure" location="North Europe" size="Standard_A2" username="ubuntu" osImage="canonical:UbuntuServer:14.04.3-LTS:latest"
Waiting for machine to be running, this may take a few minutes...
Error creating machine: Error waiting for machine to be running: Maximum number of retries (60) exceeded

meskipun saya pikir itu berhasil menciptakan semua sumber daya.

@buckett Terima kasih, ini tentang satu masalah terakhir yang kami coba atasi di azure go sdk. Saat ini kami tidak menunggu sumber daya yang dibuat sampai selesai dengan benar.

Sebelum mengirim permintaan tarik ke repo ini, saya berencana untuk membuat sekitar 1.000 mesin untuk melihat seberapa andal itu. Kami sudah hijau pada tes fungsional tetapi ada beberapa kelemahan seperti yang saya sebutkan sebelumnya.

@buckett di sini adalah rilis baru dengan banyak perbaikan. Saat ini saya mulai mengujinya dan sepertinya baik-baik saja (sejauh ini, semua kegagalan yang saya dapatkan tidak terkait Azure, masalah apt repo flakines, dll).

Berikut adalah paket biner untuk platform yang didukung: tautan http://cl.ly/fKvS

Saya berharap mengirim PR ke mesin dengan versi ini.

Saya mengunduh versi baru, dan mencoba melihat mesin apa yang saya miliki:

$ docker-machine-azure ls
(azure) Obtained access_token or refresh_token is stale. Please reauthenticate.
(azure) Microsoft Azure: To sign in, use a web browser to open the page https://aka.ms/devicelogin. Enter the code {removed} to authenticate.
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER    ERRORS
azure              azure        Timeout                                                 
default   *        virtualbox   Running   tcp://192.168.99.101:2376           v1.10.0   

tetapi kemudian ketika saya mencoba untuk menghapus contoh biru tua yang basi saya diminta untuk masuk lagi:

$ docker-machine-azure rm azure
About to remove azure
Are you sure? (y/n): y
(azure) NOTICE: Please check Azure portal/CLI to make sure you have no leftover resources to avoid unexpected charges.
(azure) Microsoft Azure: To sign in, use a web browser to open the page https://aka.ms/devicelogin. Enter the code {removed} to authenticate.
(azure) Virtual Machine does not exist. Skipping.  name="azure"
(azure) Network Interface does not exist. Skipping.  name="azure-nic"
(azure) Public IP does not exist. Skipping.  name="azure-ip"
(azure) Network Security Group does not exist. Skipping.  name="azure-firewall"
(azure) Attempting to clean up Availability Set resource...  name="docker-machine"
(azure) Attempting to clean up Subnet resource...  name="docker-machine"
(azure) Attempting to clean up Virtual Network resource...  name="docker-machine-vnet"
Successfully removed azure

Ketika saya kemudian membuat contoh biru baru, itu berfungsi sampai titik tertentu dan kemudian jatuh:

$ docker-machine-azure create -d azure ....
[..snipped..]
Error creating machine: Error in driver during machine creation: Panic in the driver: runtime error: invalid memory address or nil pointer dereference
goroutine 52 [running]:
runtime/debug.Stack(0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.6/libexec/src/runtime/debug/stack.go:24 +0x80
github.com/docker/machine/libmachine/drivers/rpc.(*StandardStack).Stack(0x2299078, 0x0, 0x0, 0x0)
    /Users/alp/workspace/gopath-machine/src/github.com/docker/machine/libmachine/drivers/rpc/server_driver.go:23 +0x29
github.com/docker/machine/libmachine/drivers/rpc.trapPanic(0xc82012ba28)
    /Users/alp/workspace/gopath-machine/src/github.com/docker/machine/libmachine/drivers/rpc/server_driver.go:129 +0x96
panic(0x11f78e0, 0xc82000a0f0)
    /usr/local/Cellar/go/1.6/libexec/src/runtime/panic.go:426 +0x4e9
github.com/docker/machine/drivers/azure/azureutil.osDiskStorageContainerURL(0xc820328780, 0xc8202c4468, 0x5, 0x0, 0x0)
    /Users/alp/workspace/gopath-machine/src/github.com/docker/machine/drivers/azure/azureutil/azureutil.go:709 +0x3d
github.com/docker/machine/drivers/azure/azureutil.osDiskStorageBlobURL(0xc820328780, 0xc8202c4468, 0x5, 0x0, 0x0)
    /Users/alp/workspace/gopath-machine/src/github.com/docker/machine/drivers/azure/azureutil/azureutil.go:697 +0x5c
github.com/docker/machine/drivers/azure/azureutil.AzureClient.CreateVirtualMachine(0x16c0590, 0x10, 0x17fb460, 0x20, 0x18ea160, 0x35, 0x17fb4e0, 0x24, 0x17627a0, 0x1d, ...)
    /Users/alp/workspace/gopath-machine/src/github.com/docker/machine/drivers/azure/azureutil/azureutil.go:446 +0x5f2
github.com/docker/machine/drivers/azure.(*Driver).Create.func10(0x0, 0x0)
    /Users/alp/workspace/gopath-machine/src/github.com/docker/machine/drivers/azure/azure.go:322 +0x20f
github.com/docker/machine/drivers/azure.(*Driver).Create(0xc8200c2a00, 0x0, 0x0)
    /Users/alp/workspace/gopath-machine/src/github.com/docker/machine/drivers/azure/azure.go:326 +0x461
github.com/docker/machine/libmachine/drivers/rpc.(*RPCServerDriver).Create(0xc82012d5a0, 0x2299078, 0x2299078, 0x0, 0x0)
    /Users/alp/workspace/gopath-machine/src/github.com/docker/machine/libmachine/drivers/rpc/server_driver.go:140 +0x7c
reflect.Value.call(0x108e980, 0x1518768, 0x13, 0x155ba18, 0x4, 0xc82012bed8, 0x3, 0x3, 0x0, 0x0, ...)
    /usr/local/Cellar/go/1.6/libexec/src/reflect/value.go:435 +0x120d
reflect.Value.Call(0x108e980, 0x1518768, 0x13, 0xc82012bed8, 0x3, 0x3, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.6/libexec/src/reflect/value.go:303 +0xb1
net/rpc.(*service).call(0xc82016a1c0, 0xc82012e000, 0xc820158fd0, 0xc820087880, 0xc82012dcc0, 0xd7d040, 0x2299078, 0x16, 0xd7d040, 0x2299078, ...)
    /usr/local/Cellar/go/1.6/libexec/src/net/rpc/server.go:383 +0x1c2
created by net/rpc.(*Server).ServeCodec
    /usr/local/Cellar/go/1.6/libexec/src/net/rpc/server.go:477 +0x49d

Menghapus mesin buruh pelabuhan setengah setup hampir semua bekerja. Semuanya dihapus selain dari jaringan virtual dan akun penyimpanan (dengan memeriksa di https://portal.azure.com).

@buckett argh, tidak percaya saya mengirimkan tautan untuk bangunan yang lebih lama. Maaf soal itu. Bisakah Anda mencoba yang ini: http://cl.ly/fKvS

Mesin virtual docker-machine --debug rm itu akan bagus) tetapi akun penyimpanan tidak akan dihapus. Ini gratis dan kami membersihkan disk OS yang kami alokasikan saat penghapusan juga.

Mencoba dengan build baru: baru saja menghapus mesin dan setengah jalan saya mendapat:

Error removing host "azure": azure.ServicePrincipalToken:WithAuthorization 0 Failed to refresh Service Principal Token for request to https://management.azure.com/subscriptions/fb56de48-cb6e-4d0b-8626-8faa062ada02/providers/Microsoft.Network/locations/northeurope/operations/33643d7c-82cc-40f4-8724-bd82de215338?api-version=2015-06-15 -- Original Error: Manually created ServicePrincipalToken does not contain secret material to retrieve a new access token.

Waktu tunggu build baru pada docker-machine ls untuk menempelkan token autentikasi agak terlalu pendek karena saya tidak dapat membuka browser, salin dan tempel token autentikasi dan klik untuk menerimanya, masuk ke yang benar akun dan menerima izin.

Dan ketika laptop saya tidak menangguhkan di tengah proses pembuatan mesin, itu membuat host baru yang menjalankan buruh pelabuhan (ajaib, terima kasih,: kue :). Saya mendapatkan kesalahan saat membuat tetapi saya bisa menjalankan hello-world setelah pembuatan

Checking connection to Docker...
Error creating machine: Error checking the host: Error checking and/or regenerating the certs: There was an error validating certificates for host "13.69.192.88:2376": tls: DialWithDialer timed out
You can attempt to regenerate them using 'docker-machine regenerate-certs [name]'.
Be advised that this will trigger a Docker daemon restart which will stop running containers.

$ eval $(docker-machine-azure env azure)
$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
03f4658f8b78: Pull complete 
a3ed95caeb02: Pull complete 
Digest: sha256:8be990ef2aeb16dbcb9271ddfe2610fa6658d13f6dfb8bc72074cc1ca36966a7
Status: Downloaded newer image for hello-world:latest

Hello from Docker.
This message shows that your installation appears to be working correctly.

Setelah berhasil menjalankan wadah hello-world, saya juga membuat ulang sertifikat dan itu berfungsi dengan baik.

Dalam grup sumber daya bersih, menghapus mesin terakhir yang menjalankan buruh pelabuhan tampaknya tidak membersihkan jaringan (meskipun tampaknya mencoba):

(azure) Attempting to clean up Virtual Network resource...  name="docker-machine-vnet"
(azure) DBG | Azure request  method="GET" request="https://management.azure.com/subscriptions/fb56de48-cb6e-4d0b-8626-8faa062ada02/resourceGroups/test/providers/Microsoft.Network/virtualnetworks/docker-machine-vnet?api-version=2015-06-15"
(azure) DBG | Azure response  status="200 OK" method="GET" request="https://management.azure.com/subscriptions/fb56de48-cb6e-4d0b-8626-8faa062ada02/resourceGroups/test/providers/Microsoft.Network/virtualnetworks/docker-machine-vnet?api-version=2015-06-15" x-ms-request-id="626af1d8-3f4b-4915-9a8a-f7a0d4844c53"
(azure) DBG | Azure response  request="https://management.azure.com/subscriptions/fb56de48-cb6e-4d0b-8626-8faa062ada02/resourceGroups/test/providers/Microsoft.Network/virtualnetworks/docker-machine-vnet?api-version=2015-06-15" x-ms-request-id="626af1d8-3f4b-4915-9a8a-f7a0d4844c53" status="200 OK" method="GET"
(azure) DBG | Virtual Network does not have any attached dependent resource.  name="docker-machine-vnet"
(azure) Removing Virtual Network resource...  name="docker-machine-vnet"
(azure) DBG | Azure request  method="DELETE" request="https://management.azure.com/subscriptions/fb56de48-cb6e-4d0b-8626-8faa062ada02/resourceGroups/test/providers/Microsoft.Compute/virtualMachines/docker-machine-vnet?api-version=2015-06-15"
(azure) DBG | Azure response  status="204 No Content" method="DELETE" request="https://management.azure.com/subscriptions/fb56de48-cb6e-4d0b-8626-8faa062ada02/resourceGroups/test/providers/Microsoft.Compute/virtualMachines/docker-machine-vnet?api-version=2015-06-15" x-ms-request-id="8799a451-211e-4f7d-a9d7-52b2e702c5f5"
(azure) DBG | Azure response  status="204 No Content" method="DELETE" request="https://management.azure.com/subscriptions/fb56de48-cb6e-4d0b-8626-8faa062ada02/resourceGroups/test/providers/Microsoft.Compute/virtualMachines/docker-machine-vnet?api-version=2015-06-15" x-ms-request-id="8799a451-211e-4f7d-a9d7-52b2e702c5f5"

Semuanya dimulai dengan baik di Mac OS X. Kemudian, ini terjadi:

(azdh) Creating Virtual Machine...  name="azdh" location="westeurope" size="Standard_A2" username="ubuntu" osImage="canonical:UbuntuServer:14.04.3-LTS:latest"
Error creating machine: Error in driver during machine creation: Panic in the driver: runtime error: invalid memory address or nil pointer dereference
goroutine 90 [running]:

Ini log lengkapnya:

Trevors-MBP:bin trevorsullivan$ ./docker-machine-Darwin-x86_64 create --driver azure --azure-location westeurope --azure-subscription-id 1c9fd9f5-a2dc-4cc9-a73c-cab0ee4a95a1 --azure-resource-group CloudAcademyAutomation azdh
Running pre-create checks...
(azdh) Microsoft Azure: To sign in, use a web browser to open the page https://aka.ms/devicelogin. Enter the code EDPKYDZ2X to authenticate.
(azdh) Completed machine pre-create checks.
Creating machine...
(azdh) Querying existing resource group...  name="CloudAcademyAutomation"
(azdh) Resource group "CloudAcademyAutomation" already exists.
(azdh) Creating availability set...  name="docker-machine"
(azdh) Creating network security group...  name="azdh-firewall" location="westeurope"
(azdh) Querying if virtual network already exists...  location="westeurope" name="docker-machine-vnet"
(azdh) Creating subnet...  name="docker-machine" vnet="docker-machine-vnet" cidr="192.168.0.0/16"
(azdh) Creating public IP address...  name="azdh-ip"
(azdh) Creating network interface...  name="azdh-nic"
(azdh) Creating storage account "vhdsxej59xu1xauhx7kaqs2e" in westeurope
(azdh) Creating Virtual Machine...  name="azdh" location="westeurope" size="Standard_A2" username="ubuntu" osImage="canonical:UbuntuServer:14.04.3-LTS:latest"
Error creating machine: Error in driver during machine creation: Panic in the driver: runtime error: invalid memory address or nil pointer dereference
goroutine 90 [running]:
runtime/debug.Stack(0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.6/libexec/src/runtime/debug/stack.go:24 +0x80
github.com/docker/machine/libmachine/drivers/rpc.(*StandardStack).Stack(0x2299078, 0x0, 0x0, 0x0)
    /Users/alp/workspace/gopath-machine/src/github.com/docker/machine/libmachine/drivers/rpc/server_driver.go:23 +0x29
github.com/docker/machine/libmachine/drivers/rpc.trapPanic(0xc8204a3a38)
    /Users/alp/workspace/gopath-machine/src/github.com/docker/machine/libmachine/drivers/rpc/server_driver.go:129 +0x96
panic(0x11f78e0, 0xc82000a0b0)
    /usr/local/Cellar/go/1.6/libexec/src/runtime/panic.go:426 +0x4e9
github.com/docker/machine/drivers/azure/azureutil.osDiskStorageContainerURL(0xc82025db80, 0xc8204d0118, 0x4, 0x0, 0x0)
    /Users/alp/workspace/gopath-machine/src/github.com/docker/machine/drivers/azure/azureutil/azureutil.go:709 +0x3d
github.com/docker/machine/drivers/azure/azureutil.osDiskStorageBlobURL(0xc82025db80, 0xc8204d0118, 0x4, 0x0, 0x0)
    /Users/alp/workspace/gopath-machine/src/github.com/docker/machine/drivers/azure/azureutil/azureutil.go:697 +0x5c
github.com/docker/machine/drivers/azure/azureutil.AzureClient.CreateVirtualMachine(0x16c0590, 0x10, 0x17fb460, 0x20, 0x18ea160, 0x35, 0x17fb4e0, 0x24, 0x17627a0, 0x1d, ...)
    /Users/alp/workspace/gopath-machine/src/github.com/docker/machine/drivers/azure/azureutil/azureutil.go:446 +0x5f2
github.com/docker/machine/drivers/azure.(*Driver).Create.func10(0x0, 0x0)
    /Users/alp/workspace/gopath-machine/src/github.com/docker/machine/drivers/azure/azure.go:322 +0x20f
github.com/docker/machine/drivers/azure.(*Driver).Create(0xc8200d0a00, 0x0, 0x0)
    /Users/alp/workspace/gopath-machine/src/github.com/docker/machine/drivers/azure/azure.go:326 +0x461
github.com/docker/machine/libmachine/drivers/rpc.(*RPCServerDriver).Create(0xc82012eec0, 0x2299078, 0x2299078, 0x0, 0x0)
    /Users/alp/workspace/gopath-machine/src/github.com/docker/machine/libmachine/drivers/rpc/server_driver.go:140 +0x7c
reflect.Value.call(0x108e980, 0x1518768, 0x13, 0x155ba18, 0x4, 0xc8204a3ee8, 0x3, 0x3, 0x0, 0x0, ...)
    /usr/local/Cellar/go/1.6/libexec/src/reflect/value.go:435 +0x120d
reflect.Value.Call(0x108e980, 0x1518768, 0x13, 0xc8204a3ee8, 0x3, 0x3, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.6/libexec/src/reflect/value.go:303 +0xb1
net/rpc.(*service).call(0xc82012d5c0, 0xc820013e00, 0xc820212070, 0xc820091880, 0xc82020e6a0, 0xd7d040, 0x2299078, 0x16, 0xd7d040, 0x2299078, ...)
    /usr/local/Cellar/go/1.6/libexec/src/net/rpc/server.go:383 +0x1c2
created by net/rpc.(*Server).ServeCodec
    /usr/local/Cellar/go/1.6/libexec/src/net/rpc/server.go:477 +0x49d

Bersulang,
Trevor Sullivan

@ pcgeek86 sepertinya Anda menggunakan binari rc3 yang saya kirimkan sebelumnya? Bisakah Anda mencoba rc4?

@ahmetalpbalkan Bekerja kali ini, untuk membuat Host Docker di Azure. Saya akan mencoba menerapkan gambar ke sana.

@buckett Anda benar, otorisasi dalam ls perintah akan menjadi masalah karena waktu habis sementara kita meminta otorisasi. Saat ini saya tidak memiliki solusi untuk itu, tetapi saya pikir ini tidak akan sering menjadi masalah besar, ini berfungsi di create / rm . Saya akan men-debug masalah jaringan virtual. Terima kasih telah melaporkan.

@ pcgeek86 terima kasih sudah mencoba.

@buckett akan menarik untuk melihat apakah ada perbedaan antara periode waktu tunggu dengan mesin galangan ini dibandingkan dengan Azure CLI. Saya akan melihat tentang itu besok.

@squillace keduanya tidak berhubungan. Dalam ls mesin perintah mengharapkan driver untuk merespon dalam 10 detik atau lebih, jika Anda tidak dapat mengotentikasi dalam waktu singkat itu akan timeout.

Ah bagus. Itu cukup singkat jika Anda menekan momen autentikasi.

@buckett dari output Anda Saya menyadari bahwa kami mencoba menghapus VM alih-alih VNet saat membersihkan VNet :) Saya memperbaikinya sekarang. Versi yang lebih baru tidak akan mengalami masalah ini. Terima kasih telah memperhatikan dan melaporkan!

docker-machine ssh {machine} sepertinya memiliki waktu tunggu yang lama, jadi jika token autentikasi kedaluwarsa, saya baru saja memperbaruinya dengan hanya membuat koneksi ssh dan kemudian menggunakannya untuk beberapa jam.

@ahmetalpbalkan Saat Anda docker-machine mengeluh.

Trevors-MBP:bin 3 trevorsullivan$ ./docker-mac ls
(azdh) PowerState "deallocated" does not map to a docker-machine state.
(azdh) PowerState "deallocated" does not map to a docker-machine state.
NAME         ACTIVE   DRIVER         STATE     URL                         SWARM   DOCKER    ERRORS
azdh         -        azure                                                        Unknown
dh           -        vmwarefusion   Running   tcp://172.16.217.129:2376           v1.10.2
dockerhost   -        virtualbox     Stopped                                       Unknown

@ pcgeek86 tangkapan yang bagus. Biarkan saya membuatnya terlihat seperti dihentikan.

@buckett itu trik yang bagus. Omong-omong, kredensial Anda seharusnya tidak kedaluwarsa (meminta Anda untuk membuka browser) lebih awal dari 2 minggu (kecuali Anda menghapus $ HOME / .docker / machine). Apakah itu sesuatu yang tidak terdengar seperti pengalaman Anda?

Ini adalah versi baru, seharusnya memperbaiki masalah PowerState dan masalah pembersihan Jaringan Virtual: http://cl.ly/fLkb

@ahmetalpbalkan Terima kasih, itu bekerja lebih baik. Namun, bug lain adalah ketika alamat IP publik berubah, setelah reboot, pengecualian akan dilemparkan dari kredensial yang tidak valid.

Trevors-MBP:bin 4 trevorsullivan$ ./docker-machine-Darwin-x86_64 ls
NAME         ACTIVE   DRIVER         STATE     URL                         SWARM   DOCKER    ERRORS
azdh         -        azure          Running   tcp://40.118.175.219:2376           Unknown   Unable to query docker version: Get https://40.118.175.219:2376/v1.15/version: x509: certificate is valid for 104.42.125.236, not 40.118.175.219
dh           -        vmwarefusion   Running   tcp://172.16.217.129:2376           v1.10.2
dockerhost   -        virtualbox     Stopped                                       Unknown

@ pcgeek86 Saya melihat bahwa ini adalah mesin yang sama yang Anda

Saya kira pertanyaannya di sini adalah:

  1. haruskah driver azure mengalokasikan IP statis untuk mesin –sesuatu yang lebih mahal bagi pengguna? (mungkin bisa menjadi argumen)
  2. Haruskah skenario ini di mana pengguna mengelola / mengintervensi VM di luar mesin buruh pelabuhan didukung?

@ahmetalpbalkan Ya, itu adalah mesin yang sama. Saya menggunakan CLI azure xplat untuk membatalkan alokasi VM, dan kemudian memulainya kembali beberapa jam kemudian.

Menurutku:

  1. Docker hanya berguna jika dikelola dengan IP statis. Oleh karena itu, ini harus menjadi persyaratan untuk Host Docker di Azure.
  2. Tidak, tetapi IP statis masih akan menjadi persyaratan.

@ pcgeek86 Anda mungkin benar. Asumsi saya adalah docker-machine akan menggunakan docker-machine ip <vm> perintah untuk mengambil IP setiap kali menghubungkan mesin, tetapi tampaknya itu bergantung pada IP statis untuk menghasilkan sertifikat (Anda dapat mengurangi ini dengan menggunakan docker-machine regenerate-certs ) .

Pemelihara: menurut Anda apakah driver mesin harus mengalokasikan IP eksternal statis secara default (meskipun tidak gratis)?

@ pcgeek86 Saya baru saja mengamati perilaku yang sama pada driver Google. Ini menggunakan alamat IP publik singkat secara default dan saya mendapatkan kesalahan sertifikat TLS yang sama ketika saya memulai ulang Google VM dari portal. Saya kira Anda tidak seharusnya melakukan ini. : P

Tetapi saya berharap untuk menambahkan flag --azure-static-public-ip boolean di masa mendatang tetapi ini tidak akan menjadi perilaku default karena alokasi IP Statis memiliki biaya implisit kepada pengguna.

@ahmetalpbalkan apakah sertifikat regenerasi bekerja dalam kasus itu? Ketiga VM saya berfungsi, tetapi kemudian saya merobohkannya. Tidak masalah, tetapi jika sertifikat regenerasi berfungsi ....

@squillace ya, untuk itulah ia dirancang, jika sertifikat hilang, Anda dapat membuatnya kembali melalui SSH.

@ahmetalpbalkan yang sepertinya solusi yang telah diterapkan oleh buruh pelabuhan. Saya mengalami ini di ASM dm, dan regerating bekerja dengan baik. untuk Produksi, Anda akan beralih ke statis.

@squillace @ahmetalpbalkan Luar biasa, senang mengetahui bahwa docker regenerate-certs akan berfungsi. Akankah IP statis diperlukan dalam produksi? Bagaimana jika Anda menggunakan nama DNS? Apakah itu opsi untuk Docker? Itu mungkin benar-benar membantu mengatasi masalah sertifikat.

@ahmetalpbalkan Kredensial saya sepertinya bertahan beberapa jam. Tidak ada satu hari pun yang berlalu tanpa harus login lagi. Saya tidak menghapus apa pun di direktori beranda saya.

@buckett Memang terdengar seperti bug yang tidak dapat kami docker-machine --debug ssh <vm> (ganti ssh dengan ip / status sesuai keinginan) dan kirimkan keluaran debug kepada saya (ahmetb di microsoft com) (atau tempelkan ke intisari) ketika Anda diminta untuk otentikasi lain kali?

edit: menindaklanjutinya secara offline melalui email.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat