Как проверить, установлен ли пакет с помощью разве? - PullRequest
0 голосов
/ 26 марта 2019

Я создал сценарий puppet для установки клиента Azure, и на последнем шаге перед использованием yum install я хочу убедиться, что пакет не был установлен ранее для предотвращения повторной установки.

Моя концепция Выполните сценарий, если выходные данные из az --help ничего не дают (что означает, что установка Azure отсутствует)

или, если у вас, ребята, есть лучший выбор, пожалуйста, помогите мне, спасибо!

И мой код

#install azure client
        exec { 'install-azure':
        command         => '/bin/yum install azure-cli -y',
        path            => '/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:',
        unless          => 'az --help',
        #require         => Exec['yumrepolist']
        }

Кажется, что-то не так с кодом, я проверил определенного агента с помощью

puppet agent -t

Примечание: / Stage [главная] / Os_preparation :: Azure_install / Exec [yumrepolist] / возврат: выполнено успешно Ошибка: / Stage [main] / Os_preparation :: Azure_install / Exec [install-azure]: возможно не оценивается: не удалось найти команду 'az'

Есть идеи? Спасибо

1 Ответ

1 голос
/ 27 марта 2019

Вы должны установить azure-cli, используя ресурс package. Кроме того, вы должны добавить репозиторий Yum в качестве ресурса yumrepo.

Попробуйте что-то вроде следующего, которое повторяет инструкции на https://docs.microsoft.com/en-us/cli/azure/install-azure-cli-yum?view=azure-cli-latest.

yumrepo { 'azure-cli':
  descr    => 'Azure CLI',
  baseurl  => 'https://packages.microsoft.com/yumrepos/azure-cli',
  enabled  => 1,
  gpgcheck => 1,
  gpgkey   => 'https://packages.microsoft.com/keys/microsoft.asc',
}

package { 'azure-cli':
  ensure  => installed,
  require => Yumrepo['azure-cli'],
}
...