Dynamic image versioning is very cool. I had to do it manually for common libraries at previous work, and there were times where you pushed a wrong version number... That wasn't fun.
Thank you Mark for this video. It was very helpful. However, I am facing issues with winrm connections. Pipeline fails with winrm timeout. Packer VM is not accepting winrm connections when we specify the vnet and subnet names
Sorry about that! I just posted the code for this episode. Hopefully that should help. Check out the video description for the link to my GitHub. Packer input variables are defined in a file called "variables.pkr.hcl". Terraform input variables are defined in a file called "variables.tf".
Hi. Is it possible to use a single template packer file to build multiple OS images like Windows, Ubuntu, and RHEL? If so, what would be the recommended approach to achieve this? Thank you!
Good question. But I think that would not be a great idea. First windows and Linux vastly differ in how you script them to setup. Even Linux distributions differ between using apt or yum. You can use something like ansible to rationalize Linux distros to a certain extent but not for windows and Linux. You can use the same builder configuration. But the provisioners will differ so radically it wouldn't make sense.
Hi. What do I need to change if I’m running your code in my ADO? Also what’s the need for declaring IP address? I thought packer will create an IP and other requirements? Thanks
You need to setup a variable group with the credentials for your service principal. Your SP has to have contributor access to your sub so that packer can create a resource group and all the things. The up address is YOUR IP address. You could make it public but not super great from a security stand point so I at least specify a whitelisted IP, this will tell packer to setup an NSG and block anybody but you.
Hi thank you very much for uploading such a wonderful video serials, I learned a lot! I tried all the procedures in your video, but I got an error message from Azure DevOps, saying that "packer: command not found". I think this is because I used a self hosted agent, and on this agent packer is not installed. If I use a azure hosted agent, do I still need to install Packer? And I tried to run packer build through my local computer, got another error saying that the shared image is not found. I guess it is because I didn't deploy an image version through terraform before I call "packer build". But I noticed that you also didn't deploy any versions to the shared image before you call packer build (you only deployed shared image gallery and an empty shared image "Ubuntu-baseline"), but your code is working.... Do you have any idea how this happens? Thank you in advance!🙂
Thanks for the kind words. I’m glad you found it useful! It sounds like your Azure DevOps build agent doesn’t have Packer installed. You might want to install it yourself or use a marketplace task to do so. If you’re still having trouble hop on our discord server and Post in the channel dedicated to Packer.
@@azure-terraformer Thank you so much for the quick reply!!! By saying marketplace task, do you mean the extension and I should install packer extension? Sorry, I'm totally new to Azure DevOps. 😅 And about the error I posted before about not finding correct image, I have already found out the reason. I used the SKU, publisher etc. which I made up, from the destination image. That's wrong, since I should use the identifiers from a real Azure VM Image. Now I understand why you said that packer doesn't build the image, but only build a new version😃
@@azure-terraformer Oh there's another question about your episodes in this video playlist. I want to see all the videos, so that I can follow the full instructions. But when I open the playlist, I can only see a few of them, for example the first video in the playlist is the episode 8, and second is 12... Do you know why is it like that? And how can I see the complete playlist? Thank you again for your patience!
Packer and Terraform have distinct separation of responsibility. Packer automates how an individual virtual machine is setup and produces a virtual machine image as its output. Terraform automates the provisioning of a virtual machine by taking as its input that virtual machine image that packer produced as its output.
@@azure-terraformer sorry maybe I got confused. Thought this video was going through the process of automating packer build using AzDO and adding the image to shared image gallery. I’ll rewatch the video. Thanks
Oh I see what you mean now. The Terraform in this episode is used to provision an Azure shared compute gallery which packer can use as a target for creating the images.
Even I added variables created in the previous video (ruclips.net/video/dWV4APYdSAg/видео.html), add SP role on subscription and added azure required plugin , I still have an issues: Build 'azure-arm.vm' errored after 440 milliseconds 558 microseconds: the Shared Gallery Image 'VMimagesDev' to which to publish the managed image version to does not exist in the resource group 'test1' or does not contain managed image '2023.12.12' Any idea what is missing? (The gallery image name and resource group are fine)
It looks like you solved this but from the error you received it sounds more like the Resource Group name was wrong or something. It can be frustrating when the error messages are pretty unhelpful!
Dynamic image versioning is very cool. I had to do it manually for common libraries at previous work, and there were times where you pushed a wrong version number... That wasn't fun.
Thank you Mark for this video. It was very helpful.
However, I am facing issues with winrm connections. Pipeline fails with winrm timeout. Packer VM is not accepting winrm connections when we specify the vnet and subnet names
WinRM is always a bit weird isn’t it? Have you checked your NSGs on your existing VNet for the WinRM ports being opened?
Hi. I’m trying to follow and do the lab 😊. Where are you defining the variable values? Thanks
Sorry about that! I just posted the code for this episode. Hopefully that should help. Check out the video description for the link to my GitHub.
Packer input variables are defined in a file called "variables.pkr.hcl". Terraform input variables are defined in a file called "variables.tf".
Hi. Is it possible to use a single template packer file to build multiple OS images like Windows, Ubuntu, and RHEL? If so, what would be the recommended approach to achieve this? Thank you!
Good question. But I think that would not be a great idea. First windows and Linux vastly differ in how you script them to setup. Even Linux distributions differ between using apt or yum. You can use something like ansible to rationalize Linux distros to a certain extent but not for windows and Linux. You can use the same builder configuration. But the provisioners will differ so radically it wouldn't make sense.
Hi. What do I need to change if I’m running your code in my ADO? Also what’s the need for declaring IP address? I thought packer will create an IP and other requirements? Thanks
You need to setup a variable group with the credentials for your service principal. Your SP has to have contributor access to your sub so that packer can create a resource group and all the things. The up address is YOUR IP address. You could make it public but not super great from a security stand point so I at least specify a whitelisted IP, this will tell packer to setup an NSG and block anybody but you.
Have you done any Ansible automation using AzDO? I’m working on a project to automate Ansible Linux patching using AzDO. Thanks
Yes. This is in the works.
@@azure-terraformer love your content. Looking forward for it.
Thank you!!!
Hi thank you very much for uploading such a wonderful video serials, I learned a lot! I tried all the procedures in your video, but I got an error message from Azure DevOps, saying that "packer: command not found". I think this is because I used a self hosted agent, and on this agent packer is not installed. If I use a azure hosted agent, do I still need to install Packer? And I tried to run packer build through my local computer, got another error saying that the shared image is not found. I guess it is because I didn't deploy an image version through terraform before I call "packer build". But I noticed that you also didn't deploy any versions to the shared image before you call packer build (you only deployed shared image gallery and an empty shared image "Ubuntu-baseline"), but your code is working.... Do you have any idea how this happens? Thank you in advance!🙂
Thanks for the kind words. I’m glad you found it useful! It sounds like your Azure DevOps build agent doesn’t have Packer installed. You might want to install it yourself or use a marketplace task to do so.
If you’re still having trouble hop on our discord server and Post in the channel dedicated to Packer.
@@azure-terraformer Thank you so much for the quick reply!!! By saying marketplace task, do you mean the extension and I should install packer extension? Sorry, I'm totally new to Azure DevOps. 😅
And about the error I posted before about not finding correct image, I have already found out the reason. I used the SKU, publisher etc. which I made up, from the destination image. That's wrong, since I should use the identifiers from a real Azure VM Image. Now I understand why you said that packer doesn't build the image, but only build a new version😃
@0ccccccccc glad you got it sorted!
@@azure-terraformer Oh there's another question about your episodes in this video playlist. I want to see all the videos, so that I can follow the full instructions. But when I open the playlist, I can only see a few of them, for example the first video in the playlist is the episode 8, and second is 12... Do you know why is it like that? And how can I see the complete playlist? Thank you again for your patience!
Hi. Why do we need terraform? Can’t we just use packer and Azure DevOps automate packer builds? Thanks
Packer and Terraform have distinct separation of responsibility. Packer automates how an individual virtual machine is setup and produces a virtual machine image as its output. Terraform automates the provisioning of a virtual machine by taking as its input that virtual machine image that packer produced as its output.
@@azure-terraformer sorry maybe I got confused. Thought this video was going through the process of automating packer build using AzDO and adding the image to shared image gallery. I’ll rewatch the video. Thanks
Oh I see what you mean now. The Terraform in this episode is used to provision an Azure shared compute gallery which packer can use as a target for creating the images.
Even I added variables created in the previous video (ruclips.net/video/dWV4APYdSAg/видео.html), add SP role on subscription and added azure required plugin , I still have an issues:
Build 'azure-arm.vm' errored after 440 milliseconds 558 microseconds: the Shared Gallery Image 'VMimagesDev' to which to publish the managed image version to does not exist in the resource group 'test1' or does not contain managed image '2023.12.12'
Any idea what is missing? (The gallery image name and resource group are fine)
I fixed the missing imageName var in the pipeline and everything is fine.
It looks like you solved this but from the error you received it sounds more like the Resource Group name was wrong or something. It can be frustrating when the error messages are pretty unhelpful!
Glad you got it figured out!