Sharon Katz
Sharon Katz
In Fleet, you can automatically and remotely install software on hosts. This guide will walk you through the process of configuring Fleet to install software on your hosts.
Current supported software deployment formats:
As of v4.62.0, Fleet can create an automatic install policy for you when you upload a custom package or add a Fleet Maintained App. If you use this "Automatic" installation mode, you do not have to create your own policy, so you can skip the remaining steps of this process.
SELECT 1 FROM apps WHERE name = 'Adobe Acrobat Reader.app' AND version_compare(bundle_short_version, '23.001.20687') >= 0;
In order to know the exact application name to put in the query (e.g. "Adobe Acrobat Reader.app" in the query above) you can manually install it on a canary/test host and then query
SELECT * from apps;
Upon failure of the selected policy, the selected software installation will be triggered.
Adding a software automation to a policy, or changing the automated software title, will reset the policy's host counts.
Detailed flowchart
App Store (VPP) apps won't be installed if a host has MDM turned off or if you run out of licenses (purchased in Apple Business Manager). Currently, these errors aren't surfaced in Fleet. After turning MDM on for a host or purchasing more licenses, you can retry installing the app on the host's Host details page (learn how here). To retry on multiple hosts at once, head to Policies > Manage Automations in Fleet and turn the app's policy automation off and back on.
Currently, App Store apps (VPP) are not installed as Managed Apps. Uninstalling VPP apps is coming soon.
Use the following policy templates to see if the software is already installed. Fleet uses these templates to automatically install software.
SELECT 1 FROM apps WHERE name = '<SOFTWARE_TITLE_NAME>' AND version_compare(bundle_short_version, '<SOFTWARE_PACKAGE_VERSION>') >= 0;
SOFTWARE_TITLE_NAME
includes the.app
extension. You can also usebundle_identifier
for a more precise match that works if an end user renames the app on their machine.
SELECT 1 FROM programs WHERE name = '<SOFTWARE_TITLE_NAME>' AND version_compare(version, '<VERSION>') >= 0;
SELECT 1 FROM deb_packages WHERE name = '<SOFTWARE_TITLE_NAME>' AND version_compare(version, '<SOFTWARE_PACKAGE_VERSION>') >= 0;
If your team has both Ubuntu and RHEL-based hosts then you should use the following template for the policy queries:
SELECT 1 WHERE EXISTS (
-- This will mark the policies as successful on non-Debian-based hosts.
-- This is only required if Debian-based and RPM-based hosts share a team.
SELECT 1 WHERE (SELECT COUNT(*) FROM deb_packages) = 0
) OR EXISTS (
SELECT 1 FROM deb_packages WHERE name = '<SOFTWARE_TITLE_NAME>' AND version_compare(version, '<SOFTWARE_PACKAGE_VERSION>') >= 0
);
SELECT 1 FROM rpm_packages WHERE name = '<SOFTWARE_TITLE_NAME>' AND version_compare(version, '<SOFTWARE_PACKAGE_VERSION>') >= 0;
If your team has both Ubuntu and RHEL-based hosts then you should use the following template for the policy queries:
SELECT 1 WHERE EXISTS (
-- This will mark the policies as successful on non-RPM-based hosts.
-- This is only required if Debian-based and RPM-based hosts share a team.
SELECT 1 WHERE (SELECT COUNT(*) FROM rpm_packages) = 0
) OR EXISTS (
SELECT 1 FROM rpm_packages WHERE name = '<SOFTWARE_TITLE_NAME>' AND version_compare(version, 'SOFTWARE_PACKAGE_VERSION') >= 0
);
Fleet provides a REST API for managing policies, including software install automations. Learn more about Fleet's REST API.
To manage software automations using Fleet's best practice GitOps, check out the install_software
key in the policies section of the GitOps reference documentation.
Software deployment can be time-consuming and risky. This guide presents Fleet's ability to mass deploy software to your fleet in a simple and safe way. Starting with uploading a trusted installer and ending with deploying it to the proper set of machines answering the exact policy defined by you.
Leveraging Fleet’s ability to install and upgrade software on your hosts, you can streamline the process of controlling your hosts, replacing old versions of software and having the up-to-date info on what's installed on your fleet.
By automating software deployment, you can gain greater control over what's installed on your machines and have better oversight of version upgrades, ensuring old software with known issues is replaced.