Issue
I am currently writing a script(recipe) with Chef that executes on an Azure (Linux) virtual machine. For my purposes I need to install Azure CLI on that VM. I followed href="https://docs.microsoft.com/en-us/cli/azure/install-azure-cli-yum?view=azure-cli-latest" rel="nofollow noreferrer">these steps from the documentation. Unfortunately, I get the error that I can't use "sudo", and if I remove "sudo" it can't find "azure-cli". That part of the recipe looks like this:
cli = 'echo -e "[azure-cli] \ nname = Azure CLI \ nbaseurl = https: //packages.microsoft.com/yumrepos/azure-cli \ nenabled = 1 \ ngpgcheck = 1 \ ngpgkey = https: //packages.microsoft.com/keys/microsoft.asc "> /etc/yum.repos.d/azure-cli.repo '
execute "Install Azure CLI 1" do
command "sudo rpm --import https://packages.microsoft.co/keys/microsoft.asc"
end
execute "Install Azure CLI 2" do
command "sudo sh -c " + cli
end
execute "Install Azure CLI 3" do
command "yes | sudo yum install azure-cli"
end
How can I make it work? Any help or suggestions would be highly appreciated!
Solution
You have basically Chef'ified a Shell script. IMO that is not the ideal way. Take some time to familiarize yourself with Chef Resources to get the job done.
For example:
- To manage the YUM repository - use yum_repository resource.
- To install package - use the yum_package resource.
At the very minimum, something like below:
yum_repository 'azure-cli' do
description 'Azure CLI'
baseurl 'https://packages.microsoft.com/yumrepos/azure-cli'
gpgkey 'https://packages.microsoft.com/keys/microsoft.asc'
end
yum_package 'azure-cli'
Answered By - seshadri_c Answer Checked By - Marilyn (WPSolving Volunteer)