depot/third_party/nixpkgs/nixos/maintainers/scripts/azure-new
Default email 0eaa97ffad Project import generated by Copybara.
GitOrigin-RevId: c59ea8b8a0e7f927e7291c14ea6cd1bd3a16ff38
2020-08-20 19:08:02 +02:00
..
examples/basic Project import generated by Copybara. 2020-05-03 19:38:23 +02:00
.gitignore Project import generated by Copybara. 2020-08-20 19:08:02 +02:00
boot-vm.sh Project import generated by Copybara. 2020-04-24 19:36:52 -04:00
common.sh Project import generated by Copybara. 2020-04-24 19:36:52 -04:00
README.md Project import generated by Copybara. 2020-08-20 19:08:02 +02:00
shell.nix Project import generated by Copybara. 2020-04-24 19:36:52 -04:00
upload-image.sh Project import generated by Copybara. 2020-08-20 19:08:02 +02:00

azure

Demo

Here's a demo of this being used: https://asciinema.org/a/euXb9dIeUybE3VkstLWLbvhmp

Usage

This is meant to be an example image that you can copy into your own project and modify to your own needs. Notice that the example image includes a built-in test user account, which by default uses your ~/.ssh/id_ed25519.pub as an authorized_key.

Build and upload the image

$ ./upload-image.sh ./examples/basic/image.nix

...
+ attr=azbasic
+ nix-build ./examples/basic/image.nix --out-link azure
/nix/store/qdpzknpskzw30vba92mb24xzll1dqsmd-azure-image
...
95.5 %, 0 Done, 0 Failed, 1 Pending, 0 Skipped, 1 Total, 2-sec Throughput (Mb/s): 932.9565
...
/subscriptions/aff271ee-e9be-4441-b9bb-42f5af4cbaeb/resourceGroups/nixos-images/providers/Microsoft.Compute/images/azure-image-todo-makethisbetter

Take the output, boot an Azure VM:

img="/subscriptions/.../..." # use output from last command
./boot-vm.sh "${img}"
...
=> booted

Future Work

  1. If the user specifies a hard-coded user, then the agent could be removed. Probably has security benefits; definitely has closure-size benefits. (It's likely the VM will need to be booted with a special flag. See: https://github.com/Azure/azure-cli/issues/12775 for details.)