Agent remote desktop manager

## 1. REQUIREMENTS ## ### Here are the requirements necessary to ensure this is successful. ### a. Internal/Private Cloud Repository Set Up ### #### You'll need an internal/private cloud repository you can use. These are #### generally really quick to set up and there are quite a few options. #### Chocolatey Software recommends Nexus, Artifactory Pro, or ProGet as they #### are repository servers and will give you the ability to manage multiple #### repositories and types from one server installation. ### b. Download Chocolatey Package and Put on Internal Repository ### #### You need to have downloaded the Chocolatey package as well. #### Please see //chocolatey.org/install#organization ### c. Other Requirements ### #### i. Requires puppetlabs/chocolatey module #### See //forge.puppet.com/puppetlabs/chocolatey ## 2. TOP LEVEL VARIABLES ## ### a. Your internal repository url [the main one]. ### #### Should be similar to what you see when you browse #### to //community.chocolatey.org/api/v2/ $_repository_url = 'INTERNAL REPO URL' ### b. Chocolatey nupkg download url ### #### This url should result in an immediate download when you navigate to it in #### a web browser $_choco_download_url = 'INTERNAL REPO URL/package/chocolatey.0.11.3.nupkg' ### c. Chocolatey Central Management [CCM] ### #### If using CCM to manage Chocolatey, add the following: #### i. Endpoint URL for CCM # $_chocolatey_central_management_url = '//chocolatey-central-management:24020/ChocolateyManagementService' #### ii. If using a Client Salt, add it here # $_chocolatey_central_management_client_salt = "clientsalt" #### iii. If using a Service Salt, add it here # $_chocolatey_central_management_service_salt = 'servicesalt' ## 3. ENSURE CHOCOLATEY IS INSTALLED ## ### Ensure Chocolatey is installed from your internal repository ### Note: `chocolatey_download_url is completely different than normal ### source locations. This is directly to the bare download url for the ### chocolatey.nupkg, similar to what you see when you browse to ### //community.chocolatey.org/api/v2/package/chocolatey class {'chocolatey': chocolatey_download_url => $_choco_download_url, use_7zip => false, } ## 4. CONFIGURE CHOCOLATEY BASELINE ## ### a. FIPS Feature ### #### If you need FIPS compliance - make this the first thing you configure #### before you do any additional configuration or package installations #chocolateyfeature {'useFipsCompliantChecksums': # ensure => enabled, #} ### b. Apply Recommended Configuration ### #### Move cache location so Chocolatey is very deterministic about #### cleaning up temporary data and the location is secured to admins chocolateyconfig {'cacheLocation': value => 'C:\ProgramData\chocolatey\cache', } #### Increase timeout to at least 4 hours chocolateyconfig {'commandExecutionTimeoutSeconds': value => '14400', } #### Turn off download progress when running choco through integrations chocolateyfeature {'showDownloadProgress': ensure => disabled, } ### c. Sources ### #### Remove the default community package repository source chocolateysource {'chocolatey': ensure => absent, location => '//community.chocolatey.org/api/v2/', } #### Add internal default sources #### You could have multiple sources here, so we will provide an example #### of one using the remote repo variable here #### NOTE: This EXAMPLE requires changes chocolateysource {'internal_chocolatey': ensure => present, location => $_repository_url, priority => 1, username => 'optional', password => 'optional,not ensured', bypass_proxy => true, admin_only => false, allow_self_service => false, } ### b. Keep Chocolatey Up To Date ### #### Keep chocolatey up to date based on your internal source #### You control the upgrades based on when you push an updated version #### to your internal repository. #### Note the source here is to the OData feed, similar to what you see #### when you browse to //community.chocolatey.org/api/v2/ package {'chocolatey': ensure => latest, provider => chocolatey, source => $_repository_url, } ## 5. ENSURE CHOCOLATEY FOR BUSINESS ## ### If you don't have Chocolatey for Business [C4B], you'll want to remove from here down. ### a. Ensure The License File Is Installed ### #### Create a license package using script from //docs.chocolatey.org/en-us/guides/organizations/organizational-deployment-guide#exercise-4-create-a-package-for-the-license # TODO: Add resource for installing/ensuring the chocolatey-license package package {'chocolatey-license': ensure => latest, provider => chocolatey, source => $_repository_url, } ### b. Disable The Licensed Source ### #### The licensed source cannot be removed, so it must be disabled. #### This must occur after the license has been set by the license package. ## Disabled sources still need all other attributes until ## //tickets.puppetlabs.com/browse/MODULES-4449 is resolved. ## Password is necessary with user, but not ensurable, so it should not ## matter what it is set to here. If you ever do get into trouble here, ## the password is your license GUID. chocolateysource {'chocolatey.licensed': ensure => disabled, priority => '10', user => 'customer', password => '1234', require => Package['chocolatey-license'], } ### c. Ensure Chocolatey Licensed Extension ### #### You will have downloaded the licensed extension to your internal repository #### as you have disabled the licensed repository in step 5b. #### Ensure the chocolatey.extension package [aka Chocolatey Licensed Extension] package {'chocolatey.extension': ensure => latest, provider => chocolatey, source => $_repository_url, require => Package['chocolatey-license'], } #### The Chocolatey Licensed Extension unlocks all of the following, which also have configuration/feature items available with them. You may want to visit the feature pages to see what you might want to also enable: #### - Package Builder - //docs.chocolatey.org/en-us/features/paid/package-builder #### - Package Internalizer - //docs.chocolatey.org/en-us/features/paid/package-internalizer #### - Package Synchronization [3 components] - //docs.chocolatey.org/en-us/features/paid/package-synchronization #### - Package Reducer - //docs.chocolatey.org/en-us/features/paid/package-reducer #### - Package Audit - //docs.chocolatey.org/en-us/features/paid/package-audit #### - Package Throttle - //docs.chocolatey.org/en-us/features/paid/package-throttle #### - CDN Cache Access - //docs.chocolatey.org/en-us/features/paid/private-cdn #### - Branding - //docs.chocolatey.org/en-us/features/paid/branding #### - Self-Service Anywhere [more components will need to be installed and additional configuration will need to be set] - //docs.chocolatey.org/en-us/features/paid/self-service-anywhere #### - Chocolatey Central Management [more components will need to be installed and additional configuration will need to be set] - //docs.chocolatey.org/en-us/features/paid/chocolatey-central-management #### - Other - //docs.chocolatey.org/en-us/features/paid/ ### d. Ensure Self-Service Anywhere ### #### If you have desktop clients where users are not administrators, you may #### to take advantage of deploying and configuring Self-Service anywhere chocolateyfeature {'showNonElevatedWarnings': ensure => disabled, } chocolateyfeature {'useBackgroundService': ensure => enabled, } chocolateyfeature {'useBackgroundServiceWithNonAdministratorsOnly': ensure => enabled, } chocolateyfeature {'allowBackgroundServiceUninstallsFromUserInstallsOnly': ensure => enabled, } chocolateyconfig {'backgroundServiceAllowedCommands': value => 'install,upgrade,uninstall', } ### e. Ensure Chocolatey Central Management ### #### If you want to manage and report on endpoints, you can set up and configure ### Central Management. There are multiple portions to manage, so you'll see ### a section on agents here along with notes on how to configure the server ### side components. if $_chocolatey_central_management_url { package {'chocolatey-agent': ensure => latest, provider => chocolatey, source => $_repository_url, require => Package['chocolatey-license'], } chocolateyconfig {'CentralManagementServiceUrl': value => $_chocolatey_central_management_url, } if $_chocolatey_central_management_client_salt { chocolateyconfig {'centralManagementClientCommunicationSaltAdditivePassword': value => $_chocolatey_central_management_client_salt, } } if $_chocolatey_central_management_service_salt { chocolateyconfig {'centralManagementClientCommunicationSaltAdditivePassword': value => $_chocolatey_central_management_client_salt, } } chocolateyfeature {'useChocolateyCentralManagement': ensure => enabled, require => Package['chocolatey-agent'], } chocolateyfeature {'useChocolateyCentralManagementDeployments': ensure => enabled, require => Package['chocolatey-agent'], } }

Video liên quan

Chủ Đề