Cookbooks
webpi
Readme

webpi Cookbook

Build status (opens in a new tab) Cookbook Version (opens in a new tab)

Microsoft Web Platform Installer (WebPI) automates the installation of Microsoft's entire Web Platform. This cookbook makes it easy to get WebpiCmdLine.exe the lightweight CLI version of WebPI onto a Windows node. It also exposes a resource for installing WebPI products idempotently.

Requirements

Platforms

  • Windows 7
  • Windows Server 2008 R2
  • Windows 8, 8.1
  • Windows Server 2012 (R1, R2)

Chef

  • Chef 12.6+

Cookbooks

  • windows 2.0+

Attributes

  • node['webpi']['home'] - location to install WebPI files to. Default is %SYSTEMDRIVE%\webpi
  • node['webpi']['url'] - Path to download webpi zip.
  • node['webpi']['xmlpath'] - Optional path to custom xml file.
  • node['webpi']['install_method'] - Method of installing webpi via msi or zip. Default is msi.
  • node['webpi']['msi'] - Location of msi file to use.
  • node['webpi']['msi_package_name'] - Windows package name, found in registry, for msi. Defaults to "Microsoft Web Platform Installer 4.5"

Resources

webpi_product

Actions

  • :install: install a product using WebpiCmdLine

Properties

  • product_id: name property. Specifies the ID of a product to install.
  • accept_eula: specifies that WebpiCmdline should auto-accept EULAs. Default is false.
  • returns: specifies the return value(s) expected for a successful installation. Can be a single integer or array of integers. Default is [0, 42]

Examples

Install IIS 7 Recommended Configuration (will install IIS 8 on Windows 2012 despite the name)

webpi_product 'IIS7' do
  accept_eula true
  action :install
end

Install Windows PowerShell 2.0

webpi_product 'PowerShell2' do
  accept_eula true
  action :install
end

Install Windows Azure Powershell 1.0 (will return a 3010 exit code to signify a successful installation that requires a reboot)

webpi_product 'WindowsAzurePowerShellGet' do
  accept_eula true
  action :install
  returns 3010
end

webpi_application

Actions

  • :install: install an application using WebpiCmdLine

Properties

  • app_id: name property. Specifies the ID of an application to install.
  • accept_eula: specifies that WebpiCmdline should auto-accept EULAs. Default is false.
  • suppress_reboot: specifies if we need to stop or suppress the reboot. Default is True.
  • iis_express: used only with applications that intergrate with IIS. Default value is False.
  • mysql_password: Used to give a mysql password for application which requires it.
  • sql_password: Used to give a sql password for application which requires it.
  • other_options: Any other options related to applications needed to be appended. Default value is empty string.
  • returns: specifies the return value(s) expected for a successful installation. Can be a single integer or array of integers. Default is [0, 42]

Examples

Installing WebMatrix while Accepting the EULA and also install app to IISExpress Ex: >WebPICMD.exe /Install /Products:WebMatrix /AcceptEula /IISExpress

webpi_application 'WebMatrix' do
  accept_eula true
  iis_express true
  action  :install
end

Installing an application to MicrosoftAzure ServiceFabric CoreSDK Ex: >WebPICMD.exe /Install /Applications:MicrosoftAzure-ServiceFabric-CoreSDK /AcceptEula

webpi_application 'MicrosoftAzure-ServiceFabric-CoreSDK' do
  accept_eula true
  action :install
end
password = data_bag_item('secrets','mysqlpassword')['password'] # Should be a encrypted data bag
webpi_application 'AcquiaDrupal' do
  accept_eula    true
  mysql_password password # To be set from encrypted databag
  action         :install
end

Usage

default

Downloads and unzips WebpiCmdLine.exe to the location specified by node['webpi']['home']. WebpiCmdLine.exe is used required by the webpi_product LWRP for taking all actions.

License & Authors

Author: Cookbook Engineering Team (cookbooks@chef.io)

Copyright: 2011-2019, Chef Software, Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.