<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>automation Archives | XOAP</title>
	<atom:link href="https://dev.xoap.io/tag/automation/feed/" rel="self" type="application/rss+xml" />
	<link>https://dev.xoap.io/tag/automation/</link>
	<description>Platform for IT infrastructure and workplace automation</description>
	<lastBuildDate>Tue, 03 Feb 2026 12:18:12 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://dev.xoap.io/wp-content/uploads/2023/11/cropped-favicon-32x32.png</url>
	<title>automation Archives | XOAP</title>
	<link>https://dev.xoap.io/tag/automation/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>How XOAP modernizes Citrix MCS and PVS</title>
		<link>https://dev.xoap.io/modernize-citrix-mcs-and-pvs-with-xoap/</link>
		
		<dc:creator><![CDATA[Mario]]></dc:creator>
		<pubDate>Mon, 01 Dec 2025 10:05:23 +0000</pubDate>
				<category><![CDATA[Library]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[citrix]]></category>
		<category><![CDATA[citrix pvs]]></category>
		<category><![CDATA[citrx mcs]]></category>
		<guid isPermaLink="false">https://dev.xoap.io/?p=27258</guid>

					<description><![CDATA[<p>Automate Citrix MCS and PVS workflows, speeding deployments, ensuring consistency and improving IT efficiency across hybrid environments.</p>
<p>The post <a href="https://dev.xoap.io/modernize-citrix-mcs-and-pvs-with-xoap/">How XOAP modernizes Citrix MCS and PVS</a> appeared first on <a href="https://dev.xoap.io">XOAP</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="27258" class="elementor elementor-27258" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-86c21a6 e-flex e-con-boxed e-con e-parent" data-id="86c21a6" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-05c1ca8 e-con-full e-flex e-con e-child" data-id="05c1ca8" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-f9543e8 e-con-full e-flex e-con e-child" data-id="f9543e8" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-2c46337 e-con-full e-flex e-con e-child" data-id="2c46337" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-a37a44e elementor-toc--content-ellipsis elementor-toc--minimized-on-tablet elementor-widget elementor-widget-table-of-contents" data-id="a37a44e" data-element_type="widget" data-e-type="widget" data-settings="{&quot;headings_by_tags&quot;:[&quot;h2&quot;,&quot;h3&quot;],&quot;container&quot;:&quot;main&quot;,&quot;exclude_headings_by_selector&quot;:[],&quot;marker_view&quot;:&quot;bullets&quot;,&quot;icon&quot;:{&quot;value&quot;:&quot;fas fa-arrow-right&quot;,&quot;library&quot;:&quot;fa-solid&quot;,&quot;rendered_tag&quot;:&quot;&lt;svg class=\&quot;e-font-icon-svg e-fas-arrow-right\&quot; viewBox=\&quot;0 0 448 512\&quot; xmlns=\&quot;http:\/\/www.w3.org\/2000\/svg\&quot;&gt;&lt;path d=\&quot;M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z\&quot;&gt;&lt;\/path&gt;&lt;\/svg&gt;&quot;},&quot;no_headings_message&quot;:&quot;No headings were found on this page.&quot;,&quot;minimize_box&quot;:&quot;yes&quot;,&quot;minimized_on&quot;:&quot;tablet&quot;,&quot;hierarchical_view&quot;:&quot;yes&quot;,&quot;min_height&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}" data-widget_type="table-of-contents.default">
				<div class="elementor-widget-container">
									<div class="elementor-toc__header">
						<h4 class="elementor-toc__header-title">
				Table of contents			</h4>
										<div class="elementor-toc__toggle-button elementor-toc__toggle-button--expand" role="button" tabindex="0" aria-controls="elementor-toc__a37a44e" aria-expanded="true" aria-label="Open table of contents"><svg aria-hidden="true" class="e-font-icon-svg e-fas-chevron-down" viewBox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path d="M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"></path></svg></div>
				<div class="elementor-toc__toggle-button elementor-toc__toggle-button--collapse" role="button" tabindex="0" aria-controls="elementor-toc__a37a44e" aria-expanded="true" aria-label="Close table of contents"><svg aria-hidden="true" class="e-font-icon-svg e-fas-chevron-up" viewBox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path d="M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z"></path></svg></div>
					</div>
				<div id="elementor-toc__a37a44e" class="elementor-toc__body">
			<div class="elementor-toc__spinner-container">
				<svg class="elementor-toc__spinner eicon-animation-spin e-font-icon-svg e-eicon-loading" aria-hidden="true" viewBox="0 0 1000 1000" xmlns="http://www.w3.org/2000/svg"><path d="M500 975V858C696 858 858 696 858 500S696 142 500 142 142 304 142 500H25C25 237 238 25 500 25S975 237 975 500 763 975 500 975Z"></path></svg>			</div>
		</div>
						</div>
				</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-970cb6e elementor-widget elementor-widget-text-editor" data-id="970cb6e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>For years, <strong>Citrix administrators</strong> have relied on <strong>Machine Creation Services (MCS)</strong> and <strong>Provisioning Services (PVS)</strong> to deliver virtual desktops and application servers.</p><p><strong>While essential, these tools weren’t built for modern hybrid environments</strong> spanning on-prem datacenters, Azure, AWS and edge locations, where rapid updates, consistent configurations and automation are critical.</p><p><a href="https://dev.xoap.io/" target="_blank" rel="noopener">XOAP</a> fills this gap, <strong>automating and standardizing</strong> <strong>the entire image lifecycle around Citrix deployments</strong>. Beyond Citrix, XOAP also streamlines physical device and full endpoint lifecycle management, providing consistent automation, compliance and operational control.</p>								</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-d4c7ac4 e-con-full e-flex e-con e-child" data-id="d4c7ac4" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-42c5d93 elementor-widget elementor-widget-heading" data-id="42c5d93" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">What MCS and PVS do</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-6d946c5 elementor-widget elementor-widget-text-editor" data-id="6d946c5" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<ul><li><strong>MCS</strong>: Machine Creation Services clone virtual desktops or servers from a master image. They are simple and suitable for small-to-medium deployments.<br /><br /></li><li><strong>PVS</strong>: Provisioning Services stream a shared virtual disk to multiple machines, offering efficiency, fast deployment and reduced storage.</li></ul>								</div>
				</div>
				<div class="elementor-element elementor-element-a07da2c elementor-widget elementor-widget-heading" data-id="a07da2c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">The challenge</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-0e76239 elementor-widget elementor-widget-text-editor" data-id="0e76239" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Both MCS and PVS focus <strong>solely on provisioning</strong> and rely on administrators to <strong>manually maintain</strong> master images and configurations. <br /><br />However, most operational effort occurs <strong><em>before and after</em></strong> provisioning and includes:</p><ul><li>building images</li><li>patching OS</li><li>installing/updating apps</li><li>maintaining best practices</li><li>managing hybrid environments.</li></ul><p>MCS and PVS <strong>do not automate</strong> image creation, application packaging, hybrid deployment, versioning or operational workflows, which leads to <strong>complexity, risk and increased cost</strong> as organizations scale.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-3435658 elementor-widget elementor-widget-text-editor" data-id="3435658" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<blockquote><p><strong><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f4cc.png" alt="📌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Read also: </strong><a href="https://dev.xoap.io/xoap-is-a-game-changer-even-if-you-already-use-microsoft-autopilot/" target="_blank" rel="noopener">Device management beyond Autopilot</a></p></blockquote>								</div>
				</div>
				<div class="elementor-element elementor-element-6ee47cc elementor-widget elementor-widget-heading" data-id="6ee47cc" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">XOAP: Automation across the image lifecycle</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-c3eec4c elementor-widget elementor-widget-text-editor" data-id="c3eec4c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong>XOAP doesn’t replace Citrix or MCS/PVS; it automates everything around them.</strong></p><p>Citrix then delivers the images to users.</p><p>This layered approach provides <strong>faster deployments</strong>, <strong>fewer errors</strong>, <strong>consistent environments</strong> and <strong>lower operational costs</strong>, which is far more <strong>scalable and future-proof</strong> than relying on MCS/PVS alone.<br /><br /></p>								</div>
				</div>
				<div class="elementor-element elementor-element-8d1f7f3 elementor-widget elementor-widget-heading" data-id="8d1f7f3" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">Key features</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-3e485fd elementor-widget elementor-widget-heading" data-id="3e485fd" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h4 class="elementor-heading-title elementor-size-default">1. Automated image creation and versioning</h4>				</div>
				</div>
				<div class="elementor-element elementor-element-236d8a4 elementor-widget elementor-widget-text-editor" data-id="236d8a4" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>You define a pipeline <strong>once</strong>. XOAP then <strong>automatically builds images, applies best-practice configurations, installs apps, enforces naming conventions, versions outputs and enables rollback.</strong></p><p><em>The result:</em> reproducible, reliable golden images ready for MCS or PVS delivery.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-40de473 elementor-widget elementor-widget-text-editor" data-id="40de473" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<blockquote><p><strong><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f4cc.png" alt="📌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Learn more: </strong><a href="https://dev.xoap.io/image-management/" target="_blank" rel="noopener">XOAP Image Management</a></p></blockquote>								</div>
				</div>
				<div class="elementor-element elementor-element-cf34caa elementor-widget elementor-widget-heading" data-id="cf34caa" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h4 class="elementor-heading-title elementor-size-default">2. Configuration as Code</h4>				</div>
				</div>
				<div class="elementor-element elementor-element-9831c6b elementor-widget elementor-widget-text-editor" data-id="9831c6b" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Centralized configuration enforcement prevents drift, tracks changes and ensures <strong>compliance across all machines</strong>. Citrix servers and desktops remain consistent, predictable and aligned with policies.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-c8d3baa elementor-widget elementor-widget-heading" data-id="c8d3baa" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h4 class="elementor-heading-title elementor-size-default">3. Application deployment and packaging</h4>				</div>
				</div>
				<div class="elementor-element elementor-element-88226db elementor-widget elementor-widget-text-editor" data-id="88226db" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Applications are packaged once, deployed consistently and <strong>updated without rebuilding images</strong>, reducing image bloat and speeding patch cycles.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-3b5c941 elementor-widget elementor-widget-heading" data-id="3b5c941" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h4 class="elementor-heading-title elementor-size-default">4. Multi-cloud and on-prem infrastructure provisioning
</h4>				</div>
				</div>
				<div class="elementor-element elementor-element-9327339 elementor-widget elementor-widget-text-editor" data-id="9327339" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>XOAP automates infrastructure creation across <strong>vSphere</strong>, <strong>Nutanix</strong>, <strong>Azure</strong>, <strong>AWS</strong> and <strong>Google Cloud</strong>, bringing consistency <a href="https://dev.xoap.io/connector/" target="_blank" rel="noopener">across distributed environments</a>.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-199603f elementor-widget elementor-widget-heading" data-id="199603f" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h4 class="elementor-heading-title elementor-size-default">5. Lifecycle, governance and compliance
</h4>				</div>
				</div>
				<div class="elementor-element elementor-element-59a5807 elementor-widget elementor-widget-text-editor" data-id="59a5807" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>XOAP centralizes patching, image rebuilds, monitoring and <strong>multi-tenant management</strong>, reducing manual work and ensuring policy compliance.<br /><br /></p>								</div>
				</div>
				<div class="elementor-element elementor-element-9fb0de9 elementor-widget elementor-widget-heading" data-id="9fb0de9" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">Traditional vs XOAP workflow</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-c6a74e9 elementor-widget elementor-widget-text-editor" data-id="c6a74e9" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong>Without XOAP: <br /></strong>1. Manually update master image → 2. Install apps → 3. Patch OS → 4. Capture image → 5. Push to MCS/PVS → 6. Troubleshoot → 7. Repeat</p><p><strong>With XOAP:</strong><br />1. Update image pipeline → 2. XOAP automation <br /><br />Consistent, compliant images are delivered to Citrix MCS or PVS with <strong>minimal manual effort</strong>.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-067eb67 elementor-widget elementor-widget-heading" data-id="067eb67" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">When to use XOAP</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-f01a45e elementor-widget elementor-widget-text-editor" data-id="f01a45e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>While XOAP can automate almost anything in your IT infrastructure, it will help you the most in the following contexts:</p><p>• Large or distributed Citrix environments.<br />• Hybrid deployments across cloud and on-prem.<br />• Strict security or compliance requirements.<br />• <a href="https://dev.xoap.io/xoap-for-managed-service-provider-msp/" target="_blank" rel="noopener">Service providers</a> managing multiple tenants.<br />• Teams aiming to reduce manual work.<br /><br /></p>								</div>
				</div>
				<div class="elementor-element elementor-element-0629107 elementor-widget elementor-widget-heading" data-id="0629107" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Final thoughts</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-6a07b6d elementor-widget elementor-widget-text-editor" data-id="6a07b6d" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>MCS and PVS remain critical for Citrix provisioning, but modern hybrid IT demands <strong>automation beyond provisioning</strong>. XOAP delivers this by automating image creation, application deployment, configuration management, infrastructure provisioning and full endpoint lifecycle management.</p><p>For organizations seeking faster, more reliable deployments, operational efficiency and compliance, XOAP is a powerful <strong>automation layer that complements Citrix and modernizes IT operations</strong>.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-ad08708 elementor-widget elementor-widget-text-editor" data-id="ad08708" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<blockquote><p><strong><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f4a1.png" alt="💡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Further reading:</strong></p><p><a href="https://dev.xoap.io/xoap-for-managed-service-provider-msp/" target="_blank" rel="noopener">→XOAP for MSPs</a><br /><a href="https://dev.xoap.io/connector/" target="_blank" rel="noopener">→On-premises automation with XOAP Connector</a><br /><a href="https://dev.xoap.io/image-management/" target="_blank" rel="noopener">→All about XOAP&#8217;s Image Management module</a></p></blockquote>								</div>
				</div>
				<div class="elementor-element elementor-element-25cf300 elementor-widget elementor-widget-spacer" data-id="25cf300" data-element_type="widget" data-e-type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
							<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
						</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-4d386dd e-con-full e-flex e-con e-child" data-id="4d386dd" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-ba9e329 e-con-full e-flex e-con e-child" data-id="ba9e329" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;gradient&quot;,&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-8a4b2cf e-con-full e-flex e-con e-child" data-id="8a4b2cf" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-329cfa0 elementor-widget__width-inherit elementor-widget elementor-widget-heading" data-id="329cfa0" data-element_type="widget" data-e-type="widget" data-settings="{&quot;_animation&quot;:&quot;none&quot;,&quot;_animation_tablet&quot;:&quot;fadeInDown&quot;}" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default"><a href="https://auth.dev.xoap.io/auth/realms/my.dev.xoap.io/protocol/openid-connect/registrations?client_id=portal&#038;response_type=code&#038;scope=openid%20email&#038;redirect_uri=https://my.dev.xoap.io&#038;kc_locale=en&#038;_ga=2.120291981.440170699.1710334465-1088457358.1705491014" target="_blank">Automate your Citrix deployment</a></h2>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-6519c7b e-con-full e-flex e-con e-child" data-id="6519c7b" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-a2f8591 elementor-mobile-align-justify elementor-widget-mobile__width-inherit elementor-widget elementor-widget-button" data-id="a2f8591" data-element_type="widget" data-e-type="widget" data-settings="{&quot;_animation_mobile&quot;:&quot;none&quot;}" title="Get lifetime access" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://auth.dev.xoap.io/auth/realms/my.dev.xoap.io/protocol/openid-connect/registrations?client_id=portal&#038;response_type=code&#038;scope=openid%20email&#038;redirect_uri=https://my.dev.xoap.io&#038;kc_locale=en" target="_blank" title="Start for free">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Start for free</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				<div class="elementor-element elementor-element-a2ed454 elementor-mobile-align-justify elementor-widget-mobile__width-inherit elementor-widget elementor-widget-button" data-id="a2ed454" data-element_type="widget" data-e-type="widget" title="Get lifetime access" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://calendly.com/xoap/30min" target="_blank" title="Book a demo">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Book a demo</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-336cfeb e-flex e-con-boxed e-con e-parent" data-id="336cfeb" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
					<div class="e-con-inner">
					</div>
				</div>
				</div>
		<p>The post <a href="https://dev.xoap.io/modernize-citrix-mcs-and-pvs-with-xoap/">How XOAP modernizes Citrix MCS and PVS</a> appeared first on <a href="https://dev.xoap.io">XOAP</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to automate AWS without using Terraform</title>
		<link>https://dev.xoap.io/how-to-automate-aws-without-using-terraform/</link>
		
		<dc:creator><![CDATA[Mario]]></dc:creator>
		<pubDate>Thu, 09 Oct 2025 10:52:34 +0000</pubDate>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[aws]]></category>
		<category><![CDATA[terraform]]></category>
		<guid isPermaLink="false">https://dev.xoap.io/?p=25916</guid>

					<description><![CDATA[<p>Script your infrastructure and operations across accounts. No HCL, no state files. Just fast, flexible automation from a single UI.</p>
<p>The post <a href="https://dev.xoap.io/how-to-automate-aws-without-using-terraform/">How to automate AWS without using Terraform</a> appeared first on <a href="https://dev.xoap.io">XOAP</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="25916" class="elementor elementor-25916" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-86c21a6 e-flex e-con-boxed e-con e-parent" data-id="86c21a6" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-05c1ca8 e-con-full e-flex e-con e-child" data-id="05c1ca8" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-f9543e8 e-con-full e-flex e-con e-child" data-id="f9543e8" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-2c46337 e-con-full e-flex e-con e-child" data-id="2c46337" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-a37a44e elementor-toc--content-ellipsis elementor-toc--minimized-on-tablet elementor-widget elementor-widget-table-of-contents" data-id="a37a44e" data-element_type="widget" data-e-type="widget" data-settings="{&quot;headings_by_tags&quot;:[&quot;h2&quot;],&quot;container&quot;:&quot;main&quot;,&quot;exclude_headings_by_selector&quot;:[],&quot;marker_view&quot;:&quot;bullets&quot;,&quot;icon&quot;:{&quot;value&quot;:&quot;fas fa-arrow-right&quot;,&quot;library&quot;:&quot;fa-solid&quot;,&quot;rendered_tag&quot;:&quot;&lt;svg class=\&quot;e-font-icon-svg e-fas-arrow-right\&quot; viewBox=\&quot;0 0 448 512\&quot; xmlns=\&quot;http:\/\/www.w3.org\/2000\/svg\&quot;&gt;&lt;path d=\&quot;M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z\&quot;&gt;&lt;\/path&gt;&lt;\/svg&gt;&quot;},&quot;no_headings_message&quot;:&quot;No headings were found on this page.&quot;,&quot;minimize_box&quot;:&quot;yes&quot;,&quot;minimized_on&quot;:&quot;tablet&quot;,&quot;hierarchical_view&quot;:&quot;yes&quot;,&quot;min_height&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}" data-widget_type="table-of-contents.default">
				<div class="elementor-widget-container">
									<div class="elementor-toc__header">
						<h4 class="elementor-toc__header-title">
				Table of contents			</h4>
										<div class="elementor-toc__toggle-button elementor-toc__toggle-button--expand" role="button" tabindex="0" aria-controls="elementor-toc__a37a44e" aria-expanded="true" aria-label="Open table of contents"><svg aria-hidden="true" class="e-font-icon-svg e-fas-chevron-down" viewBox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path d="M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"></path></svg></div>
				<div class="elementor-toc__toggle-button elementor-toc__toggle-button--collapse" role="button" tabindex="0" aria-controls="elementor-toc__a37a44e" aria-expanded="true" aria-label="Close table of contents"><svg aria-hidden="true" class="e-font-icon-svg e-fas-chevron-up" viewBox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path d="M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z"></path></svg></div>
					</div>
				<div id="elementor-toc__a37a44e" class="elementor-toc__body">
			<div class="elementor-toc__spinner-container">
				<svg class="elementor-toc__spinner eicon-animation-spin e-font-icon-svg e-eicon-loading" aria-hidden="true" viewBox="0 0 1000 1000" xmlns="http://www.w3.org/2000/svg"><path d="M500 975V858C696 858 858 696 858 500S696 142 500 142 142 304 142 500H25C25 237 238 25 500 25S975 237 975 500 763 975 500 975Z"></path></svg>			</div>
		</div>
						</div>
				</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-970cb6e elementor-widget elementor-widget-text-editor" data-id="970cb6e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>If you&#8217;re managing <strong>AWS infrastructure</strong>, there&#8217;s a good chance Terraform is on your radar or already part of your pipeline.</p><p>However:<br />a) It&#8217;s not always necessary.<br />b) You might not need it at all.</p><p>The effort of writing HCL, managing state files and stitching together modules can slow things down, especially for operational tasks, account bootstrapping or cross-environment scripting.</p><p>If you want <strong>fast, simple and flexible</strong> AWS automation, <a href="https://dev.xoap.io/">XOAP</a> can be a great option, with or without Terraform.</p>								</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-d4c7ac4 e-con-full e-flex e-con e-child" data-id="d4c7ac4" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-42c5d93 elementor-widget elementor-widget-heading" data-id="42c5d93" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Is Terraform really necessary?</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-6d946c5 elementor-widget elementor-widget-text-editor" data-id="6d946c5" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>While Terraform is great for building infrastructure, <strong>not every task is about provisioning VPCs or load balancers</strong>.</p><p>Much of what DevOps and cloud teams do looks more like this:</p><p>• Applying security settings at scale.<br />• Running scripts across multiple accounts.<br />• Automating patching, updates or cleanup.<br />• Enforcing compliance across environments.<br />• Configuring operating systems or installing apps.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-3435658 elementor-widget elementor-widget-text-editor" data-id="3435658" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<blockquote><p><strong><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f4cc.png" alt="📌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Read more about </strong><a href="https://dev.xoap.io/automatically-harden-aws-accounts-with-cis-benchmarks/" target="_blank" rel="noopener">Securing AWS accounts automatically</a></p></blockquote>								</div>
				</div>
				<div class="elementor-element elementor-element-a07da2c elementor-widget elementor-widget-heading" data-id="a07da2c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Using XOAP </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-0e76239 elementor-widget elementor-widget-text-editor" data-id="0e76239" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>XOAP can provision infrastructure, not just manage existing environments. It does this through<strong> <a href="https://dev.xoap.io/scripted-actions/" target="_blank" rel="noopener">Scripted Actions</a></strong> and prebuilt automation templates that let you create and configure:</p><p>• EC2 instances.<br />• IAM roles and policies.<br />• VPCs and security groups.<br />• S3 buckets and encryption settings.<br />• GuardDuty, Config, CloudTrail and other AWS services.</p><p>Instead of declaring resources in HCL, you write scripts – <b>or use ready-made ones available in your <a href="https://auth.dev.xoap.io/auth/realms/my.dev.xoap.io/protocol/openid-connect/registrations?client_id=portal&amp;response_type=code&amp;scope=openid%20email&amp;redirect_uri=https://my.dev.xoap.io&amp;kc_locale=en&amp;_ga=2.73136912.261120942.1759407782-151843498.1759407782" target="_blank" rel="noopener">XOAP Workspace</a></b> – that tell AWS exactly what to do, which gives you:</p><p>• More flexibility to define infrastructure your way.<br />• Easier cross-account and multi-region provisioning.<br />• The ability to use conditional logic, loops and dynamic inputs.<br />• Simpler onboarding with no need to learn Terraform internals.</p><p><strong>XOAP can be your provisioning engine and your operations tool, especially if you prefer scripting over declarative IaC.</strong></p>								</div>
				</div>
				<div class="elementor-element elementor-element-6ee47cc elementor-widget elementor-widget-heading" data-id="6ee47cc" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">What this means in practice for AWS automation</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-c3eec4c elementor-widget elementor-widget-text-editor" data-id="c3eec4c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>By using your own scripts or XOAP&#8217;s pre-built templates, you can automate AWS tasks directly, <strong>across any number of accounts</strong>:</p><p>• Connect your AWS environments easily (via access key or role).<br />• Create production-ready Landing Zones fast.<br />• Run Scripted Actions using PowerShell, CLI or your preferred language.<br />• Apply changes instantly or schedule them across time zones and regions.<br />• Automate configuration, security, updates and more.</p><p><strong>No IaC or state files.</strong> Just automation that works at scale.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-45f1e67 elementor-widget elementor-widget-text-editor" data-id="45f1e67" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<blockquote><p lang="hr"><strong><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f4cc.png" alt="📌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Read more about </strong><a href="https://dev.xoap.io/aws-automation/" target="_blank" rel="noopener">Automating entire AWS operations</a></p></blockquote>								</div>
				</div>
				<div class="elementor-element elementor-element-f4b7f28 elementor-widget elementor-widget-heading" data-id="f4b7f28" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Example: Automating patching across all your EC2s</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-236d8a4 elementor-widget elementor-widget-text-editor" data-id="236d8a4" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Let’s say you want to <strong>update EC2 instances</strong> with security patches across five AWS accounts.</p><p>With Terraform, that means modeling your EC2 fleet declaratively, managing dependencies and state updates, and possibly writing a custom provider or pulling in external data.</p><p><strong>With XOAP, it’s a Scripted Action: you select a patching script, pick the accounts and hit run.</strong></p><p>Scripted Actions can also be scheduled to keep it fully automated.</p><p><em><strong>This way, you get:</strong></em></p><p>➜ Secure access to each account.<br />➜ Parallel execution across regions.<br />➜ Logging, audit trails and notifications.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-99a0ab5 elementor-widget elementor-widget-text-editor" data-id="99a0ab5" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<blockquote><p><strong><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f4cc.png" alt="📌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Read more about </strong><a href="https://dev.xoap.io/automate-amazon-dcv-deployment/" target="_blank" rel="noopener">Automating Amazon DCV deployment</a></p></blockquote>								</div>
				</div>
				<div class="elementor-element elementor-element-9fb0de9 elementor-widget elementor-widget-heading" data-id="9fb0de9" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Already using Terraform? Even better!</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-c6a74e9 elementor-widget elementor-widget-text-editor" data-id="c6a74e9" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>If your team already uses Terraform for provisioning, keep going. XOAP isn’t here to replace it, but to <em>complement</em> it.</p><p>While Terraform covers infrastructure provisioning, XOAP handles:</p><p>• <strong>Day-2 operations</strong> like updates, restarts or application installations.<br />• <strong>Cross-account orchestration</strong>, particularly when it involves configuration that goes beyond the platform’s capabilities.<br />• <strong>Conditional flows</strong> based on runtime state, like remediation scripts.<br />• <strong>Orchestration of operational sequences</strong>.<br />• Central view of <strong>execution history and logs</strong>.</p><p>You can even <strong>trigger XOAP actions via API</strong> to keep your workflows clean and modular.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-067eb67 elementor-widget elementor-widget-heading" data-id="067eb67" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Try XOAP now</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-f01a45e elementor-widget elementor-widget-text-editor" data-id="f01a45e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>If you&#8217;re spending time on repetitive tasks, dealing with multi-account complexity or just want a simple path to automation, XOAP can help. And if you&#8217;re already deep into Terraform, <a href="https://auth.dev.xoap.io/auth/realms/my.dev.xoap.io/protocol/openid-connect/registrations?client_id=portal&amp;response_type=code&amp;scope=openid%20email&amp;redirect_uri=https://my.dev.xoap.io&amp;kc_locale=en&amp;_ga=2.194220139.719908515.1759390367-2074685015.1759390367" target="_blank" rel="noopener">XOAP goes a step beyond</a>.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-ad08708 elementor-widget elementor-widget-text-editor" data-id="ad08708" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<blockquote><p><strong><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f4a1.png" alt="💡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Read also:</strong></p><p><a href="https://dev.xoap.io/aws-automation/" target="_blank" rel="noopener">→Automating entire AWS operations</a><br /><a href="https://dev.xoap.io/automatically-harden-aws-accounts-with-cis-benchmarks/" target="_blank" rel="noopener">→Securing AWS accounts instantly</a><br /><a href="https://dev.xoap.io/automate-amazon-dcv-deployment/" target="_blank" rel="noopener">→Automating Amazon DCV deployment</a></p></blockquote>								</div>
				</div>
				<div class="elementor-element elementor-element-600d6e6 elementor-widget elementor-widget-text-editor" data-id="600d6e6" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<center>
  <em style="font-size: 10px;">
    Terraform is a registered trademark of HashiCorp, Inc. XOAP is not affiliated with or endorsed by HashiCorp.<br>
    Results may vary depending on AWS account configuration, access permissions and workload complexity.
  </em>
</center>								</div>
				</div>
				<div class="elementor-element elementor-element-25cf300 elementor-widget elementor-widget-spacer" data-id="25cf300" data-element_type="widget" data-e-type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
							<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
						</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-4d386dd e-con-full e-flex e-con e-child" data-id="4d386dd" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-ba9e329 e-con-full e-flex e-con e-child" data-id="ba9e329" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;gradient&quot;,&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-8a4b2cf e-con-full e-flex e-con e-child" data-id="8a4b2cf" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-329cfa0 elementor-widget__width-inherit elementor-widget elementor-widget-heading" data-id="329cfa0" data-element_type="widget" data-e-type="widget" data-settings="{&quot;_animation&quot;:&quot;none&quot;,&quot;_animation_tablet&quot;:&quot;fadeInDown&quot;}" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default"><a href="https://auth.dev.xoap.io/auth/realms/my.dev.xoap.io/protocol/openid-connect/registrations?client_id=portal&#038;response_type=code&#038;scope=openid%20email&#038;redirect_uri=https://my.dev.xoap.io&#038;kc_locale=en&#038;_ga=2.120291981.440170699.1710334465-1088457358.1705491014" target="_blank">Simple and flexible automation</a></h2>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-6519c7b e-con-full e-flex e-con e-child" data-id="6519c7b" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-a2f8591 elementor-mobile-align-justify elementor-widget-mobile__width-inherit elementor-widget elementor-widget-button" data-id="a2f8591" data-element_type="widget" data-e-type="widget" data-settings="{&quot;_animation_mobile&quot;:&quot;none&quot;}" title="Get lifetime access" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://auth.dev.xoap.io/auth/realms/my.dev.xoap.io/protocol/openid-connect/registrations?client_id=portal&#038;response_type=code&#038;scope=openid%20email&#038;redirect_uri=https://my.dev.xoap.io&#038;kc_locale=en" target="_blank" title="Start for free">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Start for free</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				<div class="elementor-element elementor-element-a2ed454 elementor-mobile-align-justify elementor-widget-mobile__width-inherit elementor-widget elementor-widget-button" data-id="a2ed454" data-element_type="widget" data-e-type="widget" title="Get lifetime access" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://calendly.com/xoap/30min" target="_blank" title="Book a demo">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Book a demo</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-336cfeb e-flex e-con-boxed e-con e-parent" data-id="336cfeb" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
					<div class="e-con-inner">
					</div>
				</div>
				</div>
		<p>The post <a href="https://dev.xoap.io/how-to-automate-aws-without-using-terraform/">How to automate AWS without using Terraform</a> appeared first on <a href="https://dev.xoap.io">XOAP</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to automate AWS CIS hardening</title>
		<link>https://dev.xoap.io/automatically-harden-aws-accounts-with-cis-benchmarks/</link>
		
		<dc:creator><![CDATA[Stella]]></dc:creator>
		<pubDate>Tue, 30 Sep 2025 07:00:39 +0000</pubDate>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[aws]]></category>
		<category><![CDATA[cis]]></category>
		<guid isPermaLink="false">https://dev.xoap.io/?p=25631</guid>

					<description><![CDATA[<p>If you manage cloud environments, you know how time-consuming it is to secure every new AWS account.  XOAP changes that. The moment you connect an account, it’s automatically hardened to meet CIS benchmarks.</p>
<p>The post <a href="https://dev.xoap.io/automatically-harden-aws-accounts-with-cis-benchmarks/">How to automate AWS CIS hardening</a> appeared first on <a href="https://dev.xoap.io">XOAP</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="25631" class="elementor elementor-25631" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-86c21a6 e-flex e-con-boxed e-con e-parent" data-id="86c21a6" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-05c1ca8 e-con-full e-flex e-con e-child" data-id="05c1ca8" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-f9543e8 e-con-full e-flex e-con e-child" data-id="f9543e8" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-2c46337 e-con-full e-flex e-con e-child" data-id="2c46337" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-a37a44e elementor-toc--content-ellipsis elementor-toc--minimized-on-tablet elementor-widget elementor-widget-table-of-contents" data-id="a37a44e" data-element_type="widget" data-e-type="widget" data-settings="{&quot;headings_by_tags&quot;:[&quot;h2&quot;],&quot;container&quot;:&quot;main&quot;,&quot;exclude_headings_by_selector&quot;:[],&quot;marker_view&quot;:&quot;bullets&quot;,&quot;icon&quot;:{&quot;value&quot;:&quot;fas fa-arrow-right&quot;,&quot;library&quot;:&quot;fa-solid&quot;,&quot;rendered_tag&quot;:&quot;&lt;svg class=\&quot;e-font-icon-svg e-fas-arrow-right\&quot; viewBox=\&quot;0 0 448 512\&quot; xmlns=\&quot;http:\/\/www.w3.org\/2000\/svg\&quot;&gt;&lt;path d=\&quot;M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z\&quot;&gt;&lt;\/path&gt;&lt;\/svg&gt;&quot;},&quot;no_headings_message&quot;:&quot;No headings were found on this page.&quot;,&quot;minimize_box&quot;:&quot;yes&quot;,&quot;minimized_on&quot;:&quot;tablet&quot;,&quot;hierarchical_view&quot;:&quot;yes&quot;,&quot;min_height&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}" data-widget_type="table-of-contents.default">
				<div class="elementor-widget-container">
									<div class="elementor-toc__header">
						<h4 class="elementor-toc__header-title">
				Table of contents			</h4>
										<div class="elementor-toc__toggle-button elementor-toc__toggle-button--expand" role="button" tabindex="0" aria-controls="elementor-toc__a37a44e" aria-expanded="true" aria-label="Open table of contents"><svg aria-hidden="true" class="e-font-icon-svg e-fas-chevron-down" viewBox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path d="M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"></path></svg></div>
				<div class="elementor-toc__toggle-button elementor-toc__toggle-button--collapse" role="button" tabindex="0" aria-controls="elementor-toc__a37a44e" aria-expanded="true" aria-label="Close table of contents"><svg aria-hidden="true" class="e-font-icon-svg e-fas-chevron-up" viewBox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path d="M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z"></path></svg></div>
					</div>
				<div id="elementor-toc__a37a44e" class="elementor-toc__body">
			<div class="elementor-toc__spinner-container">
				<svg class="elementor-toc__spinner eicon-animation-spin e-font-icon-svg e-eicon-loading" aria-hidden="true" viewBox="0 0 1000 1000" xmlns="http://www.w3.org/2000/svg"><path d="M500 975V858C696 858 858 696 858 500S696 142 500 142 142 304 142 500H25C25 237 238 25 500 25S975 237 975 500 763 975 500 975Z"></path></svg>			</div>
		</div>
						</div>
				</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-970cb6e elementor-widget elementor-widget-text-editor" data-id="970cb6e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">If you manage cloud environments, you already know that security is non-negotiable, but it can slow everything down – especially when you&#8217;re spinning up new AWS accounts.</p><p lang="hr">Every time you add a new account, there’s a long list of things to do: configure logs, enable GuardDuty, tweak IAM policies, block public S3 access&#8230; and so on. It’s tedious, time-consuming, and easy to get wrong.</p><p lang="hr">So we built a better way! With XOAP,<strong> your AWS accounts can be CIS compliant the moment you connect them</strong>.</p>								</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-d4c7ac4 e-con-full e-flex e-con e-child" data-id="d4c7ac4" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-42c5d93 elementor-widget elementor-widget-heading" data-id="42c5d93" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Why the CIS AWS benchmark matters
</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-6d946c5 elementor-widget elementor-widget-text-editor" data-id="6d946c5" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">The <a href="https://docs.aws.amazon.com/securityhub/latest/userguide/cis-aws-foundations-benchmark.html" target="_blank" rel="noopener">CIS AWS Foundations Benchmark</a> is a set of best practices designed to help secure AWS environments. It covers things like:</p><ul type="disc"><li lang="hr">Logging and monitoring</li><li lang="hr">Identity and access management</li><li lang="hr">Network protections</li><li lang="hr">Encryption settings</li><li lang="hr">Regional coverage</li></ul><p lang="hr">Following these guidelines helps reduce risk and improve your security posture. The problem? Actually applying all of this manually isn’t simple.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-45f1e67 elementor-widget elementor-widget-text-editor" data-id="45f1e67" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<blockquote><p lang="hr"><strong><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f4cc.png" alt="📌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Read more about </strong><a href="https://dev.xoap.io/cis-compliance/" target="_blank" rel="noopener">CIS compliance</a></p></blockquote>								</div>
				</div>
				<div class="elementor-element elementor-element-a07da2c elementor-widget elementor-widget-heading" data-id="a07da2c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">The problem with manual hardening
</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-0e76239 elementor-widget elementor-widget-text-editor" data-id="0e76239" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Here’s how it usually works:</p><ol><li>A new AWS account gets created.</li><li>Someone (usually a DevOps or security engineer) goes through a checklist.</li><li>They set up CloudTrail, enable Config, turn on GuardDuty, enforce MFA, etc.</li><li>Repeat for every region and every new account.</li></ol><p>This process is not only repetitive, but it also introduces inconsistencies, especially as your environment grows.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-6ee47cc elementor-widget elementor-widget-heading" data-id="6ee47cc" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">The fix: XOAP’s automated AWS CIS hardening
</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-c3eec4c elementor-widget elementor-widget-text-editor" data-id="c3eec4c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">Instead of doing all that manually, XOAP lets you automate the entire process in just a few clicks. Here’s how it works:</p>								</div>
				</div>
				<div class="elementor-element elementor-element-5143240 elementor-widget elementor-widget-image" data-id="5143240" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
																<a href="https://dev.xoap.io/wp-content/uploads/2025/09/steps-aws-cis-hardening.jpg" data-elementor-open-lightbox="yes" data-e-action-hash="#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MjU1ODQsInVybCI6Imh0dHBzOlwvXC9kZXYueG9hcC5pb1wvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAyNVwvMDlcL3N0ZXBzLWF3cy1jaXMtaGFyZGVuaW5nLmpwZyJ9">
							<img fetchpriority="high" decoding="async" width="1024" height="666" src="https://dev.xoap.io/wp-content/uploads/2025/09/steps-aws-cis-hardening-1024x666.jpg" class="attachment-large size-large wp-image-25584" alt="Steps for AWS CIS hardening with XOAP" srcset="https://dev.xoap.io/wp-content/uploads/2025/09/steps-aws-cis-hardening-1024x666.jpg 1024w, https://dev.xoap.io/wp-content/uploads/2025/09/steps-aws-cis-hardening-300x195.jpg 300w, https://dev.xoap.io/wp-content/uploads/2025/09/steps-aws-cis-hardening-768x499.jpg 768w, https://dev.xoap.io/wp-content/uploads/2025/09/steps-aws-cis-hardening-1536x998.jpg 1536w, https://dev.xoap.io/wp-content/uploads/2025/09/steps-aws-cis-hardening-18x12.jpg 18w, https://dev.xoap.io/wp-content/uploads/2025/09/steps-aws-cis-hardening.jpg 1920w" sizes="(max-width: 1024px) 100vw, 1024px" />								</a>
															</div>
				</div>
				<div class="elementor-element elementor-element-38124b8 elementor-widget elementor-widget-heading" data-id="38124b8" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">1. Connect your AWS account
</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-17fb9a2 elementor-widget elementor-widget-text-editor" data-id="17fb9a2" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">Head to your XOAP Workspace, go to <em>Connections</em> and add your AWS account. The setup only takes a few minutes.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-10d391c elementor-widget elementor-widget-heading" data-id="10d391c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">2. Choose the CIS hardening script
</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-16830c8 elementor-widget elementor-widget-text-editor" data-id="16830c8" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">Open<em> Scripted Actions</em>, click <em>New</em>, and select the Resource: <strong>aws-ps-account-hardening.ps1</strong>. It’s pre-built and ready to go.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-f4a518c elementor-widget elementor-widget-heading" data-id="f4a518c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">3. Run now or schedule it
</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-116db44 elementor-widget elementor-widget-text-editor" data-id="116db44" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">Run the action immediately or schedule it to run automatically at the desired time (your choice).</p>								</div>
				</div>
				<div class="elementor-element elementor-element-d279dc2 elementor-widget elementor-widget-heading" data-id="d279dc2" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">4. Done! Start using your hardened AWS account
</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-c3a8993 elementor-widget elementor-widget-text-editor" data-id="c3a8993" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">That’s it. The script applies all CIS-aligned settings behind the scenes. No extra tools needed.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-f4b7f28 elementor-widget elementor-widget-heading" data-id="f4b7f28" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">What XOAP configures for you
</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-236d8a4 elementor-widget elementor-widget-text-editor" data-id="236d8a4" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>When you run the CIS hardening script, XOAP automatically configures:</p><ul><li>CloudTrail: Multi-region, KMS-encrypted, with log file validation</li><li>AWS Config: Recording and delivery set up across your regions</li><li>Security Hub: Enabled per region and subscribed to the CIS standard</li><li>GuardDuty: Turned on and actively managed</li><li>S3: Public access blocked; SSL-only enforced via bucket policies</li><li>EBS/EC2: Default encryption enabled with your customer-managed keys</li><li>VPC: Flow logs on; optional tightening of admin ports</li><li>IAM: Strong password policy; optional MFA enforcement for console access.</li></ul><p>All of this happens automatically, in minutes.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-9fb0de9 elementor-widget elementor-widget-heading" data-id="9fb0de9" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Why this makes a difference
</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-c6a74e9 elementor-widget elementor-widget-text-editor" data-id="c6a74e9" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">Cloud teams today are moving fast and security can&#8217;t be an afterthought. With XOAP:</p><ul type="disc"><li lang="hr">New accounts are secured instantly – no lag, no risk.</li><li lang="hr">You get consistency at scale – the same secure setup across all environments.</li><li lang="hr">Compliance is easier – CIS-aligned settings are mapped and exportable.</li><li lang="hr">You don’t need to write scripts – we’ve already done that part.</li></ul><p lang="hr">Whether you&#8217;re managing a few accounts or hundreds, this saves time and reduces mistakes significantly.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-99a0ab5 elementor-widget elementor-widget-text-editor" data-id="99a0ab5" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<blockquote><p><strong><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f4cc.png" alt="📌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Read more about</strong><a href="https://dev.xoap.io/cis-ready-aws-accounts/" target="_blank" rel="noopener"> CIS-ready AWS accounts</a></p></blockquote>								</div>
				</div>
				<div class="elementor-element elementor-element-067eb67 elementor-widget elementor-widget-heading" data-id="067eb67" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Try it now</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-f01a45e elementor-widget elementor-widget-text-editor" data-id="f01a45e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">There’s no reason to spend hours manually securing every new AWS account. It’s repetitive and pulls your team away from more valuable work.</p><p lang="hr">With XOAP, CIS hardening becomes automatic. The moment an account is connected, it’s configured with security best practices: no guesswork, no delays. You get consistent, reliable security at scale without slowing anything down.</p><p lang="hr">It’s a straightforward fix to a real problem. If you&#8217;re managing cloud environments and care about getting security right from day one, this is how you do it.</p><p lang="hr"><em>Please note: The hardening script is automatically available for all new XOAP accounts. If you&#8217;re an existing XOAP user, please<a href="https://dev.xoap.io/contact/" target="_blank" rel="noopener"> contact us</a> to get the script.<br /><br /></em></p>								</div>
				</div>
				<div class="elementor-element elementor-element-231b217 elementor-widget elementor-widget-text-editor" data-id="231b217" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<center><strong><strong>We cover instant AWS account security in the Automation Talks podcast<br /></strong></strong><center>If the video does not load, adjust your cookie preferences or <a href="https://youtu.be/VgizHsNkr1Q" target="_blank" rel="noopener">watch it directly on YouTube</a>.</center></center>								</div>
				</div>
				<div class="elementor-element elementor-element-fd1d04f elementor-widget elementor-widget-video" data-id="fd1d04f" data-element_type="widget" data-e-type="widget" data-settings="{&quot;youtube_url&quot;:&quot;https:\/\/youtu.be\/VgizHsNkr1Q&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}" data-widget_type="video.default">
				<div class="elementor-widget-container">
							<div class="elementor-wrapper elementor-open-inline">
			<div class="elementor-video"></div>		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-ad08708 elementor-widget elementor-widget-text-editor" data-id="ad08708" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<blockquote><p><strong><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f4a1.png" alt="💡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Helpful info:</strong></p><p><a href="https://dev.xoap.io/docs/connect-your-infrastructure/" target="_blank" rel="noopener">→How to connect your infrastructure</a><br /><a href="https://dev.xoap.io/aws-automation/" target="_blank" rel="noopener">→Automate your entire AWS operations</a><br /><a href="https://dev.xoap.io/scripted-actions/" target="_blank" rel="noopener">→Centralized script automation</a></p></blockquote>								</div>
				</div>
				<div class="elementor-element elementor-element-25cf300 elementor-widget elementor-widget-spacer" data-id="25cf300" data-element_type="widget" data-e-type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
							<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
						</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-4d386dd e-con-full e-flex e-con e-child" data-id="4d386dd" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-ba9e329 e-con-full e-flex e-con e-child" data-id="ba9e329" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;gradient&quot;,&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-8a4b2cf e-con-full e-flex e-con e-child" data-id="8a4b2cf" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-329cfa0 elementor-widget__width-inherit elementor-widget elementor-widget-heading" data-id="329cfa0" data-element_type="widget" data-e-type="widget" data-settings="{&quot;_animation&quot;:&quot;none&quot;,&quot;_animation_tablet&quot;:&quot;fadeInDown&quot;}" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default"><a href="https://auth.dev.xoap.io/auth/realms/my.dev.xoap.io/protocol/openid-connect/registrations?client_id=portal&#038;response_type=code&#038;scope=openid%20email&#038;redirect_uri=https://my.dev.xoap.io&#038;kc_locale=en&#038;_ga=2.120291981.440170699.1710334465-1088457358.1705491014" target="_blank">CIS-ready AWS accounts</a></h2>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-6519c7b e-con-full e-flex e-con e-child" data-id="6519c7b" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-a2f8591 elementor-mobile-align-justify elementor-widget-mobile__width-inherit elementor-widget elementor-widget-button" data-id="a2f8591" data-element_type="widget" data-e-type="widget" data-settings="{&quot;_animation_mobile&quot;:&quot;none&quot;}" title="Get lifetime access" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://auth.dev.xoap.io/auth/realms/my.dev.xoap.io/protocol/openid-connect/registrations?client_id=portal&#038;response_type=code&#038;scope=openid%20email&#038;redirect_uri=https://my.dev.xoap.io&#038;kc_locale=en" target="_blank" title="Start for free">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Start for free</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				<div class="elementor-element elementor-element-a2ed454 elementor-mobile-align-justify elementor-widget-mobile__width-inherit elementor-widget elementor-widget-button" data-id="a2ed454" data-element_type="widget" data-e-type="widget" title="Get lifetime access" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://calendly.com/xoap/30min" target="_blank" title="Book a demo">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Book a demo</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				</div>
				</div>
				</div>
				</div>
		<p>The post <a href="https://dev.xoap.io/automatically-harden-aws-accounts-with-cis-benchmarks/">How to automate AWS CIS hardening</a> appeared first on <a href="https://dev.xoap.io">XOAP</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to migrate from VMware to Nutanix using XOAP</title>
		<link>https://dev.xoap.io/how-to-migrate-from-vmware-to-nutanix-using-xoap/</link>
		
		<dc:creator><![CDATA[Stella]]></dc:creator>
		<pubDate>Thu, 18 Sep 2025 09:22:15 +0000</pubDate>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[migration]]></category>
		<category><![CDATA[nutanix]]></category>
		<category><![CDATA[vmware]]></category>
		<guid isPermaLink="false">https://dev.xoap.io/?p=25602</guid>

					<description><![CDATA[<p>Migrate from VMware to Nutanix the easy way. XOAP keeps things simple so you don’t have to worry about complex setups or downtime.</p>
<p>The post <a href="https://dev.xoap.io/how-to-migrate-from-vmware-to-nutanix-using-xoap/">How to migrate from VMware to Nutanix using XOAP</a> appeared first on <a href="https://dev.xoap.io">XOAP</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="25602" class="elementor elementor-25602" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-86c21a6 e-flex e-con-boxed e-con e-parent" data-id="86c21a6" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-05c1ca8 e-con-full e-flex e-con e-child" data-id="05c1ca8" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-f9543e8 e-con-full e-flex e-con e-child" data-id="f9543e8" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-2c46337 e-con-full e-flex e-con e-child" data-id="2c46337" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-a37a44e elementor-toc--content-ellipsis elementor-toc--minimized-on-tablet elementor-widget elementor-widget-table-of-contents" data-id="a37a44e" data-element_type="widget" data-e-type="widget" data-settings="{&quot;headings_by_tags&quot;:[&quot;h2&quot;,&quot;h3&quot;],&quot;container&quot;:&quot;main&quot;,&quot;exclude_headings_by_selector&quot;:[],&quot;marker_view&quot;:&quot;bullets&quot;,&quot;icon&quot;:{&quot;value&quot;:&quot;fas fa-arrow-right&quot;,&quot;library&quot;:&quot;fa-solid&quot;,&quot;rendered_tag&quot;:&quot;&lt;svg class=\&quot;e-font-icon-svg e-fas-arrow-right\&quot; viewBox=\&quot;0 0 448 512\&quot; xmlns=\&quot;http:\/\/www.w3.org\/2000\/svg\&quot;&gt;&lt;path d=\&quot;M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z\&quot;&gt;&lt;\/path&gt;&lt;\/svg&gt;&quot;},&quot;no_headings_message&quot;:&quot;No headings were found on this page.&quot;,&quot;minimize_box&quot;:&quot;yes&quot;,&quot;minimized_on&quot;:&quot;tablet&quot;,&quot;hierarchical_view&quot;:&quot;yes&quot;,&quot;min_height&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}" data-widget_type="table-of-contents.default">
				<div class="elementor-widget-container">
									<div class="elementor-toc__header">
						<h4 class="elementor-toc__header-title">
				Table of contents			</h4>
										<div class="elementor-toc__toggle-button elementor-toc__toggle-button--expand" role="button" tabindex="0" aria-controls="elementor-toc__a37a44e" aria-expanded="true" aria-label="Open table of contents"><svg aria-hidden="true" class="e-font-icon-svg e-fas-chevron-down" viewBox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path d="M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"></path></svg></div>
				<div class="elementor-toc__toggle-button elementor-toc__toggle-button--collapse" role="button" tabindex="0" aria-controls="elementor-toc__a37a44e" aria-expanded="true" aria-label="Close table of contents"><svg aria-hidden="true" class="e-font-icon-svg e-fas-chevron-up" viewBox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path d="M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z"></path></svg></div>
					</div>
				<div id="elementor-toc__a37a44e" class="elementor-toc__body">
			<div class="elementor-toc__spinner-container">
				<svg class="elementor-toc__spinner eicon-animation-spin e-font-icon-svg e-eicon-loading" aria-hidden="true" viewBox="0 0 1000 1000" xmlns="http://www.w3.org/2000/svg"><path d="M500 975V858C696 858 858 696 858 500S696 142 500 142 142 304 142 500H25C25 237 238 25 500 25S975 237 975 500 763 975 500 975Z"></path></svg>			</div>
		</div>
						</div>
				</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-970cb6e elementor-widget elementor-widget-text-editor" data-id="970cb6e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">Across industries, organizations are reassessing their virtualization strategies. As licensing models evolve and support costs rise, many IT teams are looking for more flexible, cost-effective platforms, without compromising performance or security.</p><p lang="hr">Nutanix AHV has become a popular choice for modern enterprises. It&#8217;s tightly integrated with the Nutanix ecosystem, and built for operational simplicity. However, making the transition from VMware ESXi to AHV is no small task.</p><p lang="hr">This is exactly where XOAP helps.</p><p lang="hr">XOAP offers a systematic, automated and consistent method for migrating workloads from VMware to Nutanix.</p>								</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-d4c7ac4 e-con-full e-flex e-con e-child" data-id="d4c7ac4" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-42c5d93 elementor-widget elementor-widget-heading" data-id="42c5d93" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">VMware to Nutanix: Migration guidelines
</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-cd70bb7 elementor-widget elementor-widget-heading" data-id="cd70bb7" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">Step 1: Assess your current environment
</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-6d946c5 elementor-widget elementor-widget-text-editor" data-id="6d946c5" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">A successful migration starts with a complete and accurate understanding of your existing VMware infrastructure. Assess the following:</p><ul type="disc"><li lang="hr">VM inventory (including OS, CPU, memory, and storage)</li><li lang="hr">Oversized VMs or workloads with specific resource constraints</li><li lang="hr">Application dependencies and inter-VM communication</li><li lang="hr">Network architecture, including VLANs and IP mappings</li><li lang="hr">Storage performance requirements and capacity utilization</li></ul>								</div>
				</div>
				<div class="elementor-element elementor-element-a07da2c elementor-widget elementor-widget-heading" data-id="a07da2c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">Step 2: Plan the migration strategically
</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-0e76239 elementor-widget elementor-widget-text-editor" data-id="0e76239" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">Rather than treating all workloads the same, segment and prioritize based on:</p><ul type="disc"><li lang="hr">Business criticality and downtime sensitivity</li><li lang="hr">Migration complexity (e.g., shared storage, networking requirements)</li><li lang="hr">Resource usage patterns</li><li lang="hr">Organizational or compliance requirements</li><li lang="hr">Application owner input and change windows</li></ul>								</div>
				</div>
				<div class="elementor-element elementor-element-6ee47cc elementor-widget elementor-widget-heading" data-id="6ee47cc" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">Step 3: Choose the easiest migration method (XOAP)
</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-315f654 elementor-widget elementor-widget-heading" data-id="315f654" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h4 class="elementor-heading-title elementor-size-default">Create platform-independent VM images
</h4>				</div>
				</div>
				<div class="elementor-element elementor-element-c3eec4c elementor-widget elementor-widget-text-editor" data-id="c3eec4c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">XOAP allows you to build virtual machine images that work across different platforms, cloud or on-prem. You don’t have to rebuild your environment every time you switch providers; this saves time and keeps your infrastructure consistent.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-38124b8 elementor-widget elementor-widget-heading" data-id="38124b8" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h4 class="elementor-heading-title elementor-size-default">Automate your setup and delivery
</h4>				</div>
				</div>
				<div class="elementor-element elementor-element-17fb9a2 elementor-widget elementor-widget-text-editor" data-id="17fb9a2" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">With XOAP, you can automate the entire setup – from provisioning servers to deploying applications. This reduces manual work, avoids human errors, and makes sure everything is repeatable.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-10d391c elementor-widget elementor-widget-heading" data-id="10d391c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h4 class="elementor-heading-title elementor-size-default">Create a modular and reusable delivery pipeline
</h4>				</div>
				</div>
				<div class="elementor-element elementor-element-16830c8 elementor-widget elementor-widget-text-editor" data-id="16830c8" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">XOAP uses modular components you can reuse across different projects. Once you build a process, you can apply it anywhere; it also makes it easier to update parts of your pipeline without breaking everything.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-f4a518c elementor-widget elementor-widget-heading" data-id="f4a518c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h4 class="elementor-heading-title elementor-size-default">Scale fast to other platforms
</h4>				</div>
				</div>
				<div class="elementor-element elementor-element-116db44 elementor-widget elementor-widget-text-editor" data-id="116db44" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">Need to move to another cloud or expand to multiple regions? XOAP supports fast, consistent scaling across providers – no need to redesign your pipeline; just connect a new platform and run.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-d279dc2 elementor-widget elementor-widget-heading" data-id="d279dc2" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h4 class="elementor-heading-title elementor-size-default">No vendor lock-in
</h4>				</div>
				</div>
				<div class="elementor-element elementor-element-c3a8993 elementor-widget elementor-widget-text-editor" data-id="c3a8993" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">XOAP is cloud-agnostic. Whether you&#8217;re on AWS, Azure, Google Cloud, or on-premises infrastructure, you&#8217;re not tied down – you can switch platforms without starting from scratch.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-206ad7f elementor-widget elementor-widget-heading" data-id="206ad7f" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h4 class="elementor-heading-title elementor-size-default">Keep know-how internal
</h4>				</div>
				</div>
				<div class="elementor-element elementor-element-203f629 elementor-widget elementor-widget-text-editor" data-id="203f629" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">XOAP keeps the migration process in your hands. Instead of relying on outside consultants, your internal team owns the setup, delivery, and scaling; this protects your know-how and builds in-house expertise over time.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-f4b7f28 elementor-widget elementor-widget-heading" data-id="f4b7f28" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Why migrate with XOAP?</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-236d8a4 elementor-widget elementor-widget-text-editor" data-id="236d8a4" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Migrating with XOAP takes the stress out of moving from VMware to Nutanix by making the process simple, consistent, and automated. It keeps your systems properly configured without needing extra agents, gives you instant visibility through ready-to-use dashboards, and makes it easy to deploy applications or build images at scale no matter where your systems live.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-067eb67 elementor-widget elementor-widget-heading" data-id="067eb67" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Make the switch without the stress</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-f01a45e elementor-widget elementor-widget-text-editor" data-id="f01a45e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">Moving from VMware to Nutanix AHV can feel like a challenge, but XOAP makes it very straightforward. It handles the tough parts behind the scenes, keeps your systems aligned, and lets you see exactly what’s happening along the way.</p><p lang="hr">No complicated setups or manual fixes – just a clear, reliable process that helps you get the job done faster and with less stress. With XOAP, migrating becomes less of a project and more of a smooth step forward.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-25cf300 elementor-widget elementor-widget-spacer" data-id="25cf300" data-element_type="widget" data-e-type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
							<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
						</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-4d386dd e-con-full e-flex e-con e-child" data-id="4d386dd" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-ba9e329 e-con-full e-flex e-con e-child" data-id="ba9e329" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;gradient&quot;,&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-8a4b2cf e-con-full e-flex e-con e-child" data-id="8a4b2cf" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-329cfa0 elementor-widget__width-inherit elementor-widget elementor-widget-heading" data-id="329cfa0" data-element_type="widget" data-e-type="widget" data-settings="{&quot;_animation&quot;:&quot;none&quot;,&quot;_animation_tablet&quot;:&quot;fadeInDown&quot;}" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default"><a href="https://auth.dev.xoap.io/auth/realms/my.dev.xoap.io/protocol/openid-connect/registrations?client_id=portal&#038;response_type=code&#038;scope=openid%20email&#038;redirect_uri=https://my.dev.xoap.io&#038;kc_locale=en&#038;_ga=2.120291981.440170699.1710334465-1088457358.1705491014" target="_blank">Migrate from VMware to Nutanix </a></h2>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-6519c7b e-con-full e-flex e-con e-child" data-id="6519c7b" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-030b06a elementor-mobile-align-justify elementor-widget-mobile__width-inherit elementor-widget elementor-widget-global elementor-global-18898 elementor-widget-button" data-id="030b06a" data-element_type="widget" data-e-type="widget" data-settings="{&quot;_animation_mobile&quot;:&quot;none&quot;}" title="Get lifetime access" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://auth.dev.xoap.io/auth/realms/my.dev.xoap.io/protocol/openid-connect/registrations?client_id=portal&#038;response_type=code&#038;scope=openid%20email&#038;redirect_uri=https://my.dev.xoap.io&#038;kc_locale=en" target="_blank" title="Start for free">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Start for free</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				<div class="elementor-element elementor-element-9144c9e elementor-mobile-align-justify elementor-widget-mobile__width-inherit elementor-widget elementor-widget-global elementor-global-18905 elementor-widget-button" data-id="9144c9e" data-element_type="widget" data-e-type="widget" title="Get lifetime access" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://calendly.com/xoap/30min" target="_blank" title="Book a demo">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Book a demo</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				</div>
				</div>
				</div>
				</div>
		<p>The post <a href="https://dev.xoap.io/how-to-migrate-from-vmware-to-nutanix-using-xoap/">How to migrate from VMware to Nutanix using XOAP</a> appeared first on <a href="https://dev.xoap.io">XOAP</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Automating Amazon DCV deployment with XOAP</title>
		<link>https://dev.xoap.io/automate-amazon-dcv-deployment/</link>
		
		<dc:creator><![CDATA[Ante]]></dc:creator>
		<pubDate>Mon, 18 Aug 2025 13:05:47 +0000</pubDate>
				<category><![CDATA[Library]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[amazon dcv]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[nice dcv]]></category>
		<guid isPermaLink="false">https://dev.xoap.io/?p=25167</guid>

					<description><![CDATA[<p>Spin up a fully functional Amazon DCV environment efficiently. Reduce setup time, ensure consistency and enable rapid scaling.</p>
<p>The post <a href="https://dev.xoap.io/automate-amazon-dcv-deployment/">Automating Amazon DCV deployment with XOAP</a> appeared first on <a href="https://dev.xoap.io">XOAP</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="25167" class="elementor elementor-25167" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-86c21a6 e-flex e-con-boxed e-con e-parent" data-id="86c21a6" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-05c1ca8 e-con-full e-flex e-con e-child" data-id="05c1ca8" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-f9543e8 e-con-full e-flex e-con e-child" data-id="f9543e8" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-2c46337 e-con-full e-flex e-con e-child" data-id="2c46337" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-a37a44e elementor-toc--content-ellipsis elementor-toc--minimized-on-tablet elementor-widget elementor-widget-table-of-contents" data-id="a37a44e" data-element_type="widget" data-e-type="widget" data-settings="{&quot;headings_by_tags&quot;:[&quot;h2&quot;],&quot;container&quot;:&quot;main&quot;,&quot;exclude_headings_by_selector&quot;:[],&quot;marker_view&quot;:&quot;bullets&quot;,&quot;icon&quot;:{&quot;value&quot;:&quot;fas fa-arrow-right&quot;,&quot;library&quot;:&quot;fa-solid&quot;,&quot;rendered_tag&quot;:&quot;&lt;svg class=\&quot;e-font-icon-svg e-fas-arrow-right\&quot; viewBox=\&quot;0 0 448 512\&quot; xmlns=\&quot;http:\/\/www.w3.org\/2000\/svg\&quot;&gt;&lt;path d=\&quot;M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z\&quot;&gt;&lt;\/path&gt;&lt;\/svg&gt;&quot;},&quot;no_headings_message&quot;:&quot;No headings were found on this page.&quot;,&quot;minimize_box&quot;:&quot;yes&quot;,&quot;minimized_on&quot;:&quot;tablet&quot;,&quot;hierarchical_view&quot;:&quot;yes&quot;,&quot;min_height&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}" data-widget_type="table-of-contents.default">
				<div class="elementor-widget-container">
									<div class="elementor-toc__header">
						<h4 class="elementor-toc__header-title">
				Table of contents			</h4>
										<div class="elementor-toc__toggle-button elementor-toc__toggle-button--expand" role="button" tabindex="0" aria-controls="elementor-toc__a37a44e" aria-expanded="true" aria-label="Open table of contents"><svg aria-hidden="true" class="e-font-icon-svg e-fas-chevron-down" viewBox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path d="M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"></path></svg></div>
				<div class="elementor-toc__toggle-button elementor-toc__toggle-button--collapse" role="button" tabindex="0" aria-controls="elementor-toc__a37a44e" aria-expanded="true" aria-label="Close table of contents"><svg aria-hidden="true" class="e-font-icon-svg e-fas-chevron-up" viewBox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path d="M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z"></path></svg></div>
					</div>
				<div id="elementor-toc__a37a44e" class="elementor-toc__body">
			<div class="elementor-toc__spinner-container">
				<svg class="elementor-toc__spinner eicon-animation-spin e-font-icon-svg e-eicon-loading" aria-hidden="true" viewBox="0 0 1000 1000" xmlns="http://www.w3.org/2000/svg"><path d="M500 975V858C696 858 858 696 858 500S696 142 500 142 142 304 142 500H25C25 237 238 25 500 25S975 237 975 500 763 975 500 975Z"></path></svg>			</div>
		</div>
						</div>
				</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-970cb6e elementor-widget elementor-widget-text-editor" data-id="970cb6e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Amazon DCV (formerly NICE DCV) offers a high-performance, secure solution for delivering remote desktops and 3D applications. However, setting up DCV infrastructure manually can be time-consuming and prone to errors.</p><p>This blog post walks you through the automation process using AWS tools and <a href="https://dev.xoap.io/" target="_blank" rel="noopener">XOAP</a> to simplify the deployment of Amazon DCV.</p>								</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-d4c7ac4 e-con-full e-flex e-con e-child" data-id="d4c7ac4" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-42c5d93 elementor-widget elementor-widget-heading" data-id="42c5d93" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">How does it work?</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-6d946c5 elementor-widget elementor-widget-text-editor" data-id="6d946c5" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Using prebuilt scripts, XOAP&#8217;s <a href="https://dev.xoap.io/image-management/" target="_blank" rel="noopener">Image Management</a> module and the <a href="https://dev.xoap.io/scripted-actions/" target="_blank" rel="noopener">Scripted Actions</a> feature, you&#8217;ll spin up a fully functional Amazon DCV environment efficiently, reducing setup time, ensuring consistency and enabling rapid scaling in the cloud.</p><p><strong>You can test everything in this tutorial for free</strong>, as both Image Management and Scripted Actions are available in XOAP&#8217;s free plan. Just <a href="https://auth.dev.xoap.io/auth/realms/my.dev.xoap.io/protocol/openid-connect/registrations?client_id=portal&amp;response_type=code&amp;scope=openid%20email&amp;redirect_uri=https://my.dev.xoap.io&amp;kc_locale=en&amp;_ga=2.61701036.1496275043.1755511616-320925011.1750769654" target="_blank" rel="noopener">create your account</a> first.</p><p>The Amazon DCV deployment will take five steps:</p><ol><li>Download a script from AWS.</li><li>Change the username in the script and upload it to XOAP.</li><li>Create a connection to your AWS environment.</li><li>Prepare your image for DCV deployment with Image Management.</li><li>Spin up the DCV infrastructure with Scripted Actions.</li></ol><p>Let&#8217;s go into the details now.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-a07da2c elementor-widget elementor-widget-heading" data-id="a07da2c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default"><a href="https://dev.xoap.io/platformXO/" target="_blank">Step 1: Downloading script from AWS</a></h2>				</div>
				</div>
				<div class="elementor-element elementor-element-0e76239 elementor-widget elementor-widget-text-editor" data-id="0e76239" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Download the script from the official AWS GitHub repository <a href="https://github.com/aws-samples/dcv-samples/blob/main/bootstrap/Install-DCV.ps1" target="_blank" rel="noopener">here</a>. You can find the documentation in the <a href="https://docs.aws.amazon.com/dcv/latest/adminguide/setting-up-installing.html" target="_blank" rel="noopener">AWS Administrator Guide</a>.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-6ee47cc elementor-widget elementor-widget-heading" data-id="6ee47cc" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Step 2: Uploading script to XOAP
</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-c3eec4c elementor-widget elementor-widget-text-editor" data-id="c3eec4c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Now, let&#8217;s edit the script quickly before uploading it:</p><p>• Remove the first and last lines of code: <strong>&lt;powershell&gt;</strong> and <strong>&lt;/powershell&gt;</strong>.</p><p>• Replace the placeholder &#8220;USERNAME&#8221; in <strong>line 51 </strong>with a valid username.</p><p>• Remove the comments from <strong>lines 49 to 52</strong> (optional, but considered a good practice).</p><p>To upload the script, open your <a href="https://auth.dev.xoap.io/auth/realms/my.dev.xoap.io/protocol/openid-connect/auth?client_id=portal&amp;redirect_uri=https%3A%2F%2Fmy.dev.xoap.io%2F%23%2Fdashboard&amp;state=1c3bd71f-4862-4a00-b272-a4332786a03c&amp;response_mode=fragment&amp;response_type=code&amp;scope=openid&amp;nonce=6b0fff1c-f286-4840-8379-4023dc9919e2&amp;code_challenge=bX32srtoHvxZ5HOE-w_8bigxkc4CSrBKXaks_M7FlJc&amp;code_challenge_method=S256" target="_blank" rel="noopener">XOAP Workspace</a> and go to the <strong>Resources</strong> area in the left-side menu. Click <strong>+ New Resource</strong>, then simply drag and drop the script. Click <strong>Next</strong> and <strong>Save</strong>.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-5b27f2d elementor-widget-divider--view-line elementor-widget elementor-widget-divider" data-id="5b27f2d" data-element_type="widget" data-e-type="widget" data-widget_type="divider.default">
				<div class="elementor-widget-container">
							<div class="elementor-divider">
			<span class="elementor-divider-separator">
						</span>
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-3e2d896 elementor-widget elementor-widget-text-editor" data-id="3e2d896" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><em><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/2139.png" alt="ℹ" class="wp-smiley" style="height: 1em; max-height: 1em;" /> For more information on the script&#8217;s syntax, click <a href="https://docs.aws.amazon.com/dcv/latest/adminguide/managing-sessions-start.html#managing-sessions-start-auto" target="_blank" rel="noopener">here</a>.</em><br /><em><strong><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/2139.png" alt="ℹ" class="wp-smiley" style="height: 1em; max-height: 1em;" /> </strong>The DCV license is free on EC2, with a required <a href="https://docs.aws.amazon.com/dcv/latest/adminguide/setting-up-license.html#setting-up-license-ec2" target="_blank" rel="noopener">S3 policy</a>.</em></p>								</div>
				</div>
				<div class="elementor-element elementor-element-a954caf elementor-widget-divider--view-line elementor-widget elementor-widget-divider" data-id="a954caf" data-element_type="widget" data-e-type="widget" data-widget_type="divider.default">
				<div class="elementor-widget-container">
							<div class="elementor-divider">
			<span class="elementor-divider-separator">
						</span>
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-fe4c266 elementor-widget elementor-widget-text-editor" data-id="fe4c266" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<center><strong>Follow the Amazon DCV automation video tutorial</strong></center>								</div>
				</div>
				<div class="elementor-element elementor-element-6b676f4 elementor-widget elementor-widget-video" data-id="6b676f4" data-element_type="widget" data-e-type="widget" data-settings="{&quot;youtube_url&quot;:&quot;https:\/\/youtu.be\/gZvuIFBwyp8&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}" data-widget_type="video.default">
				<div class="elementor-widget-container">
							<div class="elementor-wrapper elementor-open-inline">
			<div class="elementor-video"></div>		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-c6f34a7 elementor-widget elementor-widget-text-editor" data-id="c6f34a7" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<center>This video may not load due to your cookie preferences. Adjust your cookie settings or watch it <a href="https://youtu.be/gZvuIFBwyp8" target="_blank" rel="noopener">directly on YouTube</a>.</center>								</div>
				</div>
				<div class="elementor-element elementor-element-f4b7f28 elementor-widget elementor-widget-heading" data-id="f4b7f28" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Step 3: Creating a connection to your AWS environment</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-236d8a4 elementor-widget elementor-widget-text-editor" data-id="236d8a4" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>In XOAP, connections are used to deploy image definitions, as well as to provision and configure cloud and on-premises environments.</p><p>• Go to <strong>Connections</strong> in the left-side menu.<br />• Click <strong>+ New Connection</strong>.<br />• Select <strong>AWS</strong> as the provider and choose the connection type.<br />• If you&#8217;re using the <strong>AWS-Access Key</strong> type, provide your <strong>Access Key ID</strong>, <strong>Secret Access Key</strong> and<strong> Account ID</strong>.<br />• Click <strong>Confirm</strong> to save the connection.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-067eb67 elementor-widget elementor-widget-heading" data-id="067eb67" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Step 4: Preparing image for DCV deployment</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-f01a45e elementor-widget elementor-widget-text-editor" data-id="f01a45e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>The next step is Image Management. It&#8217;s a custom image automation module that can be found in your XOAP Workspace.</p><p><em><strong>First, create a provisioner:</strong></em></p><p>• Click on<strong> Image Management</strong>, then click on <strong>Provisioners</strong> in the drop-down menu.<br />• In the <strong>Provisioners</strong> area, click <strong>+ New Provisioner</strong>.<br />• Under <strong>Select Type</strong>, choose <strong>PowerShell Script</strong>.<br />• Under <strong>Source File</strong>, select <strong>Install-DCV.ps1</strong>, the script you uploaded to XOAP.<br />• Enter the mandatory information and click <strong>Confirm</strong>.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-23442b4 elementor-widget elementor-widget-image" data-id="23442b4" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img decoding="async" width="1024" height="568" src="https://dev.xoap.io/wp-content/uploads/2025/08/create-provisioner-amazon-dcv-automation-xoap-1024x568.png" class="attachment-large size-large wp-image-25173" alt="Create a provisioner | Amazon DCV automation | XOAP" srcset="https://dev.xoap.io/wp-content/uploads/2025/08/create-provisioner-amazon-dcv-automation-xoap-1024x568.png 1024w, https://dev.xoap.io/wp-content/uploads/2025/08/create-provisioner-amazon-dcv-automation-xoap-300x166.png 300w, https://dev.xoap.io/wp-content/uploads/2025/08/create-provisioner-amazon-dcv-automation-xoap-768x426.png 768w, https://dev.xoap.io/wp-content/uploads/2025/08/create-provisioner-amazon-dcv-automation-xoap-1536x852.png 1536w, https://dev.xoap.io/wp-content/uploads/2025/08/create-provisioner-amazon-dcv-automation-xoap-2048x1136.png 2048w, https://dev.xoap.io/wp-content/uploads/2025/08/create-provisioner-amazon-dcv-automation-xoap-18x10.png 18w" sizes="(max-width: 1024px) 100vw, 1024px" />															</div>
				</div>
				<div class="elementor-element elementor-element-3c97085 elementor-widget elementor-widget-text-editor" data-id="3c97085" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<center><em>Adding a provisioner in XOAP</em></center>								</div>
				</div>
				<div class="elementor-element elementor-element-66386b9 elementor-widget elementor-widget-text-editor" data-id="66386b9" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p> </p><p><em><strong>Now, add that provisioner to a group:</strong></em></p><p>•  Go to <strong>Image Management &gt; Provisioner Groups</strong>. <br />•  Click <strong>+ New Provisioner Group </strong>and select the provisioner you&#8217;ve created from <strong>Available Provisioners.<br /></strong>•  Enter the details and click <strong>Save</strong>.</p><p><em><strong>Add the group to a provisioner role:</strong></em></p><p>•  Go to <strong>Image Management &gt; Provisioner Roles</strong>.<br />•  Click <strong>+ New Role</strong> and select the group you created from <strong>Available Provisioner Groups</strong>.<br />•  Enter the details and click <strong>Save</strong>.</p><p><strong>Note:<br /></strong><br /><em>Each XOAP Workspace is equipped with <strong>Operating Systems</strong> that can be used as templates for further customizations. Operating system availability depends on the region and may vary. If your region is not available and you would like to adjust the operating system, you can add additional ones as needed.</em></p><p><em>The same applies to <strong>Builders</strong>, which define the connection being used, the region, the size of the VM defined to build the image and additional optional settings. You can create them before the next step or add them while defining the Image Definition.</em></p><p>• Now go to <strong>Image Management &gt; Image Definitions</strong> and click + <strong>New Image</strong>. Here you will create your image – see screenshot below as a reference. If you need help creating the image, watch this <a href="https://youtu.be/dqfcxgmL5fo?si=1Fp4bwh5vryjWDk8&amp;t=23" target="_blank" rel="noopener">short video tutorial</a>.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-d9cf165 elementor-widget elementor-widget-image" data-id="d9cf165" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img decoding="async" width="1024" height="378" src="https://dev.xoap.io/wp-content/uploads/2025/08/create-image-amazon-dcv-automation-xoap-1024x378.png" class="attachment-large size-large wp-image-25174" alt="" srcset="https://dev.xoap.io/wp-content/uploads/2025/08/create-image-amazon-dcv-automation-xoap-1024x378.png 1024w, https://dev.xoap.io/wp-content/uploads/2025/08/create-image-amazon-dcv-automation-xoap-300x111.png 300w, https://dev.xoap.io/wp-content/uploads/2025/08/create-image-amazon-dcv-automation-xoap-768x284.png 768w, https://dev.xoap.io/wp-content/uploads/2025/08/create-image-amazon-dcv-automation-xoap-1536x567.png 1536w, https://dev.xoap.io/wp-content/uploads/2025/08/create-image-amazon-dcv-automation-xoap-2048x756.png 2048w, https://dev.xoap.io/wp-content/uploads/2025/08/create-image-amazon-dcv-automation-xoap-18x7.png 18w" sizes="(max-width: 1024px) 100vw, 1024px" />															</div>
				</div>
				<div class="elementor-element elementor-element-7188969 elementor-widget elementor-widget-text-editor" data-id="7188969" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<center><em> Creating an image</em></center>								</div>
				</div>
				<div class="elementor-element elementor-element-994df4a elementor-widget elementor-widget-text-editor" data-id="994df4a" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><br />Once your image is created, it will appear in Image Definitions.</p><p>• Click the three dots on the right in the image&#8217;s row, then click <strong>Run</strong>.</p><p>You can track the progress of the Image Definition build by either clicking on the status badge or by clicking on <strong>Runs</strong> in the upper right corner.</p><p>Once the run is finished, in the <strong>Image ID</strong> field, you will see the ID as <strong>ami-xxxxxxxxxxxxxxxxx</strong>. <br />It&#8217;s good to save the image ID now, as you will need it to spin up you DCV infrastructure later.</p><p><strong>Important:</strong><br />• If you don&#8217;t have it in your XOAP Workspace already, download the <strong>EC2 provisioning script <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/2b07.png" alt="⬇" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong> below and upload it to the <strong>Resources</strong> area, just like you did with the first AWS script.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-61e3def elementor-widget elementor-widget-text-editor" data-id="61e3def" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<center><em>Tutorial continues below</em></center>								</div>
				</div>
		<div class="elementor-element elementor-element-3967194 e-con-full e-flex e-con e-child" data-id="3967194" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-7d26819 e-con-full e-flex e-con e-child" data-id="7d26819" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;,&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-f3fb260 e-con-full e-flex e-con e-child" data-id="f3fb260" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;,&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-c231689 elementor-hidden-mobile elementor-widget elementor-widget-image" data-id="c231689" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="996" height="1024" src="https://dev.xoap.io/wp-content/uploads/2024/01/download-996x1024.png" class="attachment-large size-large wp-image-5408" alt="Download illustration" srcset="https://dev.xoap.io/wp-content/uploads/2024/01/download-996x1024.png 996w, https://dev.xoap.io/wp-content/uploads/2024/01/download-292x300.png 292w, https://dev.xoap.io/wp-content/uploads/2024/01/download-768x790.png 768w, https://dev.xoap.io/wp-content/uploads/2024/01/download.png 1024w" sizes="(max-width: 996px) 100vw, 996px" />															</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-fb9c5b9 e-con-full e-flex e-con e-child" data-id="fb9c5b9" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-12b6185 elementor-widget elementor-widget-heading" data-id="12b6185" data-element_type="widget" data-e-type="widget" data-settings="{&quot;_animation&quot;:&quot;none&quot;,&quot;_animation_tablet&quot;:&quot;fadeInDown&quot;}" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Download the EC2 provisioning script</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-dd28aeb animated-slow elementor-widget__width-initial elementor-mobile-button-align-stretch elementor-invisible elementor-widget elementor-widget-form" data-id="dd28aeb" data-element_type="widget" data-e-type="widget" data-settings="{&quot;step_next_label&quot;:&quot;Next&quot;,&quot;step_previous_label&quot;:&quot;Previous&quot;,&quot;_animation&quot;:&quot;fadeIn&quot;,&quot;step_type&quot;:&quot;number_text&quot;,&quot;step_icon_shape&quot;:&quot;circle&quot;}" data-widget_type="form.default">
				<div class="elementor-widget-container">
							<form class="elementor-form" method="post" name="Download" aria-label="Download">
			<input type="hidden" name="post_id" value="25167"/>
			<input type="hidden" name="form_id" value="dd28aeb"/>
			<input type="hidden" name="referer_title" value="automation Archives | XOAP" />

			
			<div class="elementor-form-fields-wrapper elementor-labels-">
								<div class="elementor-field-type-text elementor-field-group elementor-column elementor-field-group-field_fullname elementor-col-50">
												<label for="form-field-field_fullname" class="elementor-field-label elementor-screen-only">
								Full name							</label>
														<input size="1" type="text" name="form_fields[field_fullname]" id="form-field-field_fullname" class="elementor-field elementor-size-md  elementor-field-textual" placeholder="Full name">
											</div>
								<div class="elementor-field-type-email elementor-field-group elementor-column elementor-field-group-email elementor-col-50 elementor-field-required">
												<label for="form-field-email" class="elementor-field-label elementor-screen-only">
								Email							</label>
														<input size="1" type="email" name="form_fields[email]" id="form-field-email" class="elementor-field elementor-size-md  elementor-field-textual" placeholder="Email" required="required">
											</div>
								<div class="elementor-field-type-html elementor-field-group elementor-column elementor-field-group-field_b20a517 elementor-col-100">
					By downloading, you accept the XOAP <a href="https://dev.xoap.io/data-protection" target="_blank"> privacy policy</a> and will receive product information from us.				</div>
								<div class="elementor-field-type-recaptcha_v3 elementor-field-group elementor-column elementor-field-group-field_1eb3fa3 elementor-col-100 recaptcha_v3-bottomright">
					<div class="elementor-field" id="form-field-field_1eb3fa3"><div class="elementor-g-recaptcha" data-sitekey="6Ld61w4pAAAAAGfjGrvIDymMiqJJ6ghZ58D6BIro" data-type="v3" data-action="Form" data-badge="bottomright" data-size="invisible"></div></div>				</div>
								<div class="elementor-field-group elementor-column elementor-field-type-submit elementor-col-100 e-form__buttons">
					<button class="elementor-button elementor-size-md" type="submit">
						<span class="elementor-button-content-wrapper">
															<span class="elementor-button-icon">
									<svg aria-hidden="true" class="e-font-icon-svg e-fas-cloud-download-alt" viewBox="0 0 640 512" xmlns="http://www.w3.org/2000/svg"><path d="M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z"></path></svg>																	</span>
																						<span class="elementor-button-text">Download now</span>
													</span>
					</button>
				</div>
			</div>
		</form>
						</div>
				</div>
				</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-0cb204d elementor-widget elementor-widget-heading" data-id="0cb204d" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Step 5: Spinning up DCV infrastructure</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-4155a83 elementor-widget elementor-widget-text-editor" data-id="4155a83" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Now that you&#8217;ve uploaded the EC2 provisioning script to Resources, let&#8217;s move to Scripted Actions.</p><p>You will find this feature in your XOAP Workspace under the <a href="https://dev.xoap.io/platform-management/" target="_blank" rel="noopener">Platform Management</a> module, which helps you automate hybrid infrastructures and cloud workflows.</p><p>• Go to <strong>Platform Management &gt; Scripted Actions</strong> and click <strong>+ New Scripted Action</strong>.<br />• Enter a <strong>Name</strong> for this scripted action.<br />• Under <strong>Choose a script from Resources</strong>, select the EC2 provisioning script. <br />• Click <strong>Next</strong>.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-63040fc elementor-widget elementor-widget-image" data-id="63040fc" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="1024" height="521" src="https://dev.xoap.io/wp-content/uploads/2025/08/create-scripted-action-amazon-dcv-automation-xoap-1024x521.png" class="attachment-large size-large wp-image-25175" alt="Create a scripted action | Automating Amazon DCV deployment | XOAP" srcset="https://dev.xoap.io/wp-content/uploads/2025/08/create-scripted-action-amazon-dcv-automation-xoap-1024x521.png 1024w, https://dev.xoap.io/wp-content/uploads/2025/08/create-scripted-action-amazon-dcv-automation-xoap-300x153.png 300w, https://dev.xoap.io/wp-content/uploads/2025/08/create-scripted-action-amazon-dcv-automation-xoap-768x391.png 768w, https://dev.xoap.io/wp-content/uploads/2025/08/create-scripted-action-amazon-dcv-automation-xoap-1536x781.png 1536w, https://dev.xoap.io/wp-content/uploads/2025/08/create-scripted-action-amazon-dcv-automation-xoap-2048x1041.png 2048w, https://dev.xoap.io/wp-content/uploads/2025/08/create-scripted-action-amazon-dcv-automation-xoap-18x9.png 18w" sizes="(max-width: 1024px) 100vw, 1024px" />															</div>
				</div>
				<div class="elementor-element elementor-element-9d3afca elementor-widget elementor-widget-text-editor" data-id="9d3afca" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<center><em>Creating a scripted action</em></center>								</div>
				</div>
				<div class="elementor-element elementor-element-75936f5 elementor-widget elementor-widget-text-editor" data-id="75936f5" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><br />• Edit script parameters as shown below.</p><p><strong>Important:</strong></p><p>Under <strong>AMI_ID</strong>, use the Image ID from your Image Definition run. Specify the <strong>region</strong> where you want the EC2 instance to be created, along with the <strong>SUBNET_ID</strong> of the VPC where you want the instance to be placed. <strong>Make sure you choose the same region that was specified in your Image Definition</strong>. Otherwise, the AMI won&#8217;t be found, as they are region-specific.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-88afc99 elementor-widget elementor-widget-image" data-id="88afc99" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="1024" height="279" src="https://dev.xoap.io/wp-content/uploads/2025/08/edit-parameters-scripted-action-amazon-dcv-automation-xoap-1024x279.png" class="attachment-large size-large wp-image-25177" alt="" srcset="https://dev.xoap.io/wp-content/uploads/2025/08/edit-parameters-scripted-action-amazon-dcv-automation-xoap-1024x279.png 1024w, https://dev.xoap.io/wp-content/uploads/2025/08/edit-parameters-scripted-action-amazon-dcv-automation-xoap-300x82.png 300w, https://dev.xoap.io/wp-content/uploads/2025/08/edit-parameters-scripted-action-amazon-dcv-automation-xoap-768x210.png 768w, https://dev.xoap.io/wp-content/uploads/2025/08/edit-parameters-scripted-action-amazon-dcv-automation-xoap-18x5.png 18w, https://dev.xoap.io/wp-content/uploads/2025/08/edit-parameters-scripted-action-amazon-dcv-automation-xoap.png 1396w" sizes="(max-width: 1024px) 100vw, 1024px" />															</div>
				</div>
				<div class="elementor-element elementor-element-867f8e6 elementor-widget elementor-widget-text-editor" data-id="867f8e6" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<center><em>Editing script parameters</em></center>								</div>
				</div>
				<div class="elementor-element elementor-element-e0a9a44 elementor-widget elementor-widget-text-editor" data-id="e0a9a44" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><br />• When everything&#8217;s ready, click <strong>Next</strong>.</p><p>• Select <strong>AWS</strong> from the Connections table and click <strong>Next</strong>. </p><p>• In the final scripted action creation step, you can schedule your scripted actions. We can skip that for now, so just click <strong>Finish</strong>.</p><p>The scripted action is now created and you can <strong>run it</strong> the same way you ran your Image Definition. If you want to track the progress, click on the status badge right next to the scripted action. <strong>Once the run is finished, the DCV will be ready.</strong></p><p>You can find all the information necessary for connecting to the DCV in the scripted action&#8217;s log. To access the log, click the three dots on the right side in the scripted action&#8217;s row and click <strong>View log</strong>.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-3309fe2 elementor-widget elementor-widget-image" data-id="3309fe2" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="537" height="119" src="https://dev.xoap.io/wp-content/uploads/2025/08/scripted-action-log-amazon-dcv-automation-xoap-1.png" class="attachment-large size-large wp-image-25179" alt="Scripted action log | Automating Amazon DCV deployment | XOAP" srcset="https://dev.xoap.io/wp-content/uploads/2025/08/scripted-action-log-amazon-dcv-automation-xoap-1.png 537w, https://dev.xoap.io/wp-content/uploads/2025/08/scripted-action-log-amazon-dcv-automation-xoap-1-300x66.png 300w, https://dev.xoap.io/wp-content/uploads/2025/08/scripted-action-log-amazon-dcv-automation-xoap-1-18x4.png 18w" sizes="(max-width: 537px) 100vw, 537px" />															</div>
				</div>
				<div class="elementor-element elementor-element-58d684f elementor-widget elementor-widget-text-editor" data-id="58d684f" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<center><em>Example of a scripted action&#8217;s log</em></center>								</div>
				</div>
				<div class="elementor-element elementor-element-9abf892 elementor-widget elementor-widget-text-editor" data-id="9abf892" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>To connect to the DCV, you can use web access or the Amazon DCV client, which is available for <a href="https://docs.aws.amazon.com/dcv/latest/userguide/client-windows.html" target="_blank" rel="noopener">download from AWS</a>. Be mindful of the required <a href="https://docs.aws.amazon.com/dcv/latest/adminguide/manage-port-addr.html" target="_blank" rel="noopener">Security Group rules</a> when connecting. Direct access to the instance will be required (for web access, you will need a public facing instance).</p><p><strong>Alternatively, you can deploy the Amazon DCV client to your endpoints worldwide using XOAP&#8217;s <a href="https://dev.xoap.io/application-management/" target="_blank" rel="noopener">Application Management</a> module</strong>. Application Management automates and simplifies software packaging and delivery to any device. This way, you can easily create a remote access solution for your endpoints.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-bc3fc4a elementor-widget elementor-widget-text-editor" data-id="bc3fc4a" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong><em><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f449.png" alt="👉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Did we miss something? If you need help using XOAP to automate Amazon DCV deployment, just <a href="https://calendly.com/xoap/30min" target="_blank" rel="noopener">book a call </a><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f4c5.png" alt="📅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> and our engineers will walk you through it.</em><br /></strong></p><blockquote><p><strong>More about XOAP:</strong></p><p><strong><a href="https://dev.xoap.io/application-management/" target="_blank" rel="noopener">→ </a></strong><a href="https://dev.xoap.io/application-management/" target="_blank" rel="noopener">More on Application Management</a><strong><br /></strong><a href="https://dev.xoap.io/aws-automation/" target="_blank" rel="noopener">→ Automating your entire AWS operations</a><br /><a href="https://dev.xoap.io/image-management/" target="_blank" rel="noopener">→ </a><a href="https://dev.xoap.io/image-management/" target="_blank" rel="noopener">Standardized image automation across platforms</a><br /><a href="https://dev.xoap.io/scripted-actions/" target="_blank" rel="noopener">→</a> <a href="https://dev.xoap.io/scripted-actions/" target="_blank" rel="noopener">Scripted Actions for centralized script management</a></p></blockquote>								</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-4d386dd e-con-full e-flex e-con e-child" data-id="4d386dd" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-ba9e329 e-con-full e-flex e-con e-child" data-id="ba9e329" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;gradient&quot;,&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-8a4b2cf e-con-full e-flex e-con e-child" data-id="8a4b2cf" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-329cfa0 elementor-widget__width-inherit elementor-widget elementor-widget-heading" data-id="329cfa0" data-element_type="widget" data-e-type="widget" data-settings="{&quot;_animation&quot;:&quot;none&quot;,&quot;_animation_tablet&quot;:&quot;fadeInDown&quot;}" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default"><a href="https://auth.dev.xoap.io/auth/realms/my.dev.xoap.io/protocol/openid-connect/registrations?client_id=portal&#038;response_type=code&#038;scope=openid%20email&#038;redirect_uri=https://my.dev.xoap.io&#038;kc_locale=en&#038;_ga=2.120291981.440170699.1710334465-1088457358.1705491014" target="_blank">Start automating your cloud infrastructure with XOAP</a></h2>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-6519c7b e-con-full e-flex e-con e-child" data-id="6519c7b" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-030b06a elementor-mobile-align-justify elementor-widget-mobile__width-inherit elementor-widget elementor-widget-global elementor-global-18898 elementor-widget-button" data-id="030b06a" data-element_type="widget" data-e-type="widget" data-settings="{&quot;_animation_mobile&quot;:&quot;none&quot;}" title="Get lifetime access" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://auth.dev.xoap.io/auth/realms/my.dev.xoap.io/protocol/openid-connect/registrations?client_id=portal&#038;response_type=code&#038;scope=openid%20email&#038;redirect_uri=https://my.dev.xoap.io&#038;kc_locale=en" target="_blank" title="Start for free">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Start for free</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				<div class="elementor-element elementor-element-9144c9e elementor-mobile-align-justify elementor-widget-mobile__width-inherit elementor-widget elementor-widget-global elementor-global-18905 elementor-widget-button" data-id="9144c9e" data-element_type="widget" data-e-type="widget" title="Get lifetime access" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://calendly.com/xoap/30min" target="_blank" title="Book a demo">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Book a demo</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-6b9911e e-flex e-con-boxed e-con e-parent" data-id="6b9911e" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
					<div class="e-con-inner">
					</div>
				</div>
				</div>
		<p>The post <a href="https://dev.xoap.io/automate-amazon-dcv-deployment/">Automating Amazon DCV deployment with XOAP</a> appeared first on <a href="https://dev.xoap.io">XOAP</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>XOAP is a game-changer, even if you already use Microsoft Autopilot</title>
		<link>https://dev.xoap.io/xoap-is-a-game-changer-even-if-you-already-use-microsoft-autopilot/</link>
		
		<dc:creator><![CDATA[Mario]]></dc:creator>
		<pubDate>Tue, 22 Jul 2025 14:06:55 +0000</pubDate>
				<category><![CDATA[Company & culture]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[infrastructure as code]]></category>
		<category><![CDATA[terraform]]></category>
		<guid isPermaLink="false">https://dev.xoap.io/?p=24659</guid>

					<description><![CDATA[<p>Even with Microsoft Autopilot in place, XOAP takes device management further by offering full lifecycle control, security and multi-tenant support.</p>
<p>The post <a href="https://dev.xoap.io/xoap-is-a-game-changer-even-if-you-already-use-microsoft-autopilot/">XOAP is a game-changer, even if you already use Microsoft Autopilot</a> appeared first on <a href="https://dev.xoap.io">XOAP</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="24659" class="elementor elementor-24659" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-86c21a6 e-flex e-con-boxed e-con e-parent" data-id="86c21a6" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-05c1ca8 e-con-full e-flex e-con e-child" data-id="05c1ca8" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-f9543e8 e-con-full e-flex e-con e-child" data-id="f9543e8" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-2c46337 e-con-full e-flex e-con e-child" data-id="2c46337" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-a37a44e elementor-toc--content-ellipsis elementor-toc--minimized-on-tablet elementor-widget elementor-widget-table-of-contents" data-id="a37a44e" data-element_type="widget" data-e-type="widget" data-settings="{&quot;headings_by_tags&quot;:[&quot;h2&quot;],&quot;container&quot;:&quot;main&quot;,&quot;exclude_headings_by_selector&quot;:[],&quot;marker_view&quot;:&quot;bullets&quot;,&quot;icon&quot;:{&quot;value&quot;:&quot;fas fa-arrow-right&quot;,&quot;library&quot;:&quot;fa-solid&quot;,&quot;rendered_tag&quot;:&quot;&lt;svg class=\&quot;e-font-icon-svg e-fas-arrow-right\&quot; viewBox=\&quot;0 0 448 512\&quot; xmlns=\&quot;http:\/\/www.w3.org\/2000\/svg\&quot;&gt;&lt;path d=\&quot;M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z\&quot;&gt;&lt;\/path&gt;&lt;\/svg&gt;&quot;},&quot;no_headings_message&quot;:&quot;No headings were found on this page.&quot;,&quot;minimize_box&quot;:&quot;yes&quot;,&quot;minimized_on&quot;:&quot;tablet&quot;,&quot;hierarchical_view&quot;:&quot;yes&quot;,&quot;min_height&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}" data-widget_type="table-of-contents.default">
				<div class="elementor-widget-container">
									<div class="elementor-toc__header">
						<h4 class="elementor-toc__header-title">
				Table of contents			</h4>
										<div class="elementor-toc__toggle-button elementor-toc__toggle-button--expand" role="button" tabindex="0" aria-controls="elementor-toc__a37a44e" aria-expanded="true" aria-label="Open table of contents"><svg aria-hidden="true" class="e-font-icon-svg e-fas-chevron-down" viewBox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path d="M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"></path></svg></div>
				<div class="elementor-toc__toggle-button elementor-toc__toggle-button--collapse" role="button" tabindex="0" aria-controls="elementor-toc__a37a44e" aria-expanded="true" aria-label="Close table of contents"><svg aria-hidden="true" class="e-font-icon-svg e-fas-chevron-up" viewBox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path d="M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z"></path></svg></div>
					</div>
				<div id="elementor-toc__a37a44e" class="elementor-toc__body">
			<div class="elementor-toc__spinner-container">
				<svg class="elementor-toc__spinner eicon-animation-spin e-font-icon-svg e-eicon-loading" aria-hidden="true" viewBox="0 0 1000 1000" xmlns="http://www.w3.org/2000/svg"><path d="M500 975V858C696 858 858 696 858 500S696 142 500 142 142 304 142 500H25C25 237 238 25 500 25S975 237 975 500 763 975 500 975Z"></path></svg>			</div>
		</div>
						</div>
				</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-a91d282 elementor-widget elementor-widget-text-editor" data-id="a91d282" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Microsoft Autopilot has become the go-to solution for many IT teams when it comes to modern device provisioning. It simplifies the setup process, saves time, and enables a seamless experience for end users. But what comes after the initial provisioning or what about the use cases Autopilot doesn’t cover?</p><p><span lang="en-US">That’s where </span><a href="https://dev.xoap.io/" target="_blank" rel="noopener"><span lang="de">XOAP</span></a><span lang="en-US"> steps in and </span><span lang="de">adds tremendous value</span><span lang="en-US">, even for companies that have already standardized on Autopilot.</span></p>								</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-d4c7ac4 e-con-full e-flex e-con e-child" data-id="d4c7ac4" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-42c5d93 elementor-widget elementor-widget-heading" data-id="42c5d93" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">1. Autopilot covers the start, XOAP covers the full journey</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-3d4f9aa elementor-widget elementor-widget-text-editor" data-id="3d4f9aa" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span lang="en-US">Autopilot focuses on </span><strong><span lang="de">out-of-box provisioning,</span></strong><span lang="en-US"> getting new devices ready for users. But enterprise IT often needs much more:</span></p><ul type="disc"><li>What about existing devices?</li><li>How do you ensure devices are compliant and secure from day one?</li><li>How do you manage multiple tenants and environments efficiently?</li></ul><p>XOAP fills these gaps with a powerful, centralized platform that supports the full device lifecycle – from imaging to application deployment and configuration hardening.</p><p>Moreover, XOAP makes it easy to image systems directly from the console across major cloud platforms like <strong>AWS, Azure, and Google Cloud.</strong> Imaging with <strong>vSphere and Nutanix</strong> is also supported.</p><p>For<strong> bare metal devices</strong>, XOAP fully integrates with <strong>OSDCloud</strong>, allowing fast and flexible deployment using:</p><ul><li>PXE boot</li><li>Microsoft WDS </li><li><a href="https://dev.xoap.io/offline-domain-join-xoap-azure-blob/" target="_blank" rel="noopener">Azure Blob Storage </a></li></ul><p>This gives you powerful<strong> imaging across cloud, virtual, and on-prem environments</strong>.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-be2e8c1 elementor-widget elementor-widget-heading" data-id="be2e8c1" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">2. One interface for every deployment type
</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-30023d0 elementor-widget elementor-widget-text-editor" data-id="30023d0" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>In reality, most organizations are hybrid:</p><ul type="disc"><li>Autopilot for new devices</li><li>Classic imaging for training rooms or shared environments</li><li>VMs, Citrix or RDS hosts for specialized scenarios</li></ul><p>XOAP gives you a<strong> unified UI</strong> to manage all of these, removing silos and reducing operational complexity.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-a07da2c elementor-widget elementor-widget-heading" data-id="a07da2c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default"><a href="https://dev.xoap.io/platformXO/" target="_blank">3. Security and compliance  baked into the deployment process</a></h2>				</div>
				</div>
				<div class="elementor-element elementor-element-0e76239 elementor-widget elementor-widget-text-editor" data-id="0e76239" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Provisioning a device is one thing; making sure it’s secure and compliant is another.</p><p><span lang="en-US">With </span><span lang="de">XOAPs <a href="https://dev.xoap.io/configuration-management/" target="_blank" rel="noopener">Configuration Management module</a></span><span lang="en-US">, you can:</span></p><ul type="disc"><li><span lang="en-US">Enforce </span><span lang="de"><strong>CIS, STIG, or BSI</strong> compliance</span><span lang="en-US"> automatically during or after deployment</span></li><li><span lang="en-US">Integrate </span><strong><span lang="de">Windows LAPS</span></strong><span lang="en-US">, firewall settings, and configuration policies by design</span></li><li><span lang="en-US">Use<strong> c</strong></span><strong><span lang="de">onfiguration as code</span></strong><span lang="en-US"> to ensure all systems remain aligned with security policies</span></li></ul><p>This level of control goes far beyond what Autopilot alone provides.</p><blockquote><p lang="hr"><strong>Read more about:</strong></p><p lang="hr"><a href="https://dev.xoap.io/cis-compliance/" target="_blank" rel="noopener">→ CIS compliance</a><br /><a href="https://dev.xoap.io/stig-security-standards/" target="_blank" rel="noopener">→ STIG security standards</a><br /><a href="https://dev.xoap.io/stig-security-standards/" target="_blank" rel="noopener">→</a><a href="https://dev.xoap.io/nis2-compliance-automation/" target="_blank" rel="noopener"> NIS2 compliance</a></p></blockquote>								</div>
				</div>
				<div class="elementor-element elementor-element-6ee47cc elementor-widget elementor-widget-heading" data-id="6ee47cc" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">4. Smarter software deployment across environments

</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-c3eec4c elementor-widget elementor-widget-text-editor" data-id="c3eec4c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Autopilot doesn’t install software, except in Autopilot Pre-Provisioning scenario, formerly known as &#8216;white glove&#8217;.  Usually that’s handled through Intune. But what if you need more?</p><p>With <a href="https://dev.xoap.io/application-management/" target="_blank" rel="noopener">Application Management module</a>, you get:</p><ul><li>A rich, reusable<strong> package library</strong></li><li>Centralized packaging support across multiple tenants</li><li>A solution that works beyond Intune, including <strong>SCCM, hybrid setups, and disconnected environments</strong></li></ul><p>It’s a modern take on application delivery, with better flexibility and fewer limitations.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-09df46c elementor-widget elementor-widget-heading" data-id="09df46c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">5. Multi-tenant management made easy</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-2fcd25c elementor-widget elementor-widget-text-editor" data-id="2fcd25c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span lang="en-US">For MSPs or large enterprises managing multiple tenants, </span><span lang="de">Intune becomes difficult to scale</span><span lang="en-US">.</span></p><p>XOAP solves this by offering:</p><ul type="disc"><li><span lang="en-US">Unified control for </span><strong><span lang="de">all tenants</span></strong></li><li>Reusable scripts, packages, and compliance templates</li><li>Per-tenant customization without duplicated effort</li></ul><p>A major efficiency booster for complex environments.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-a82da45 elementor-widget elementor-widget-heading" data-id="a82da45" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">6. Visibility and troubleshooting finally made simple
</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-1f6d266 elementor-widget elementor-widget-text-editor" data-id="1f6d266" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>One of the biggest pain points with Autopilot is the lack of visibility when something goes wrong.</p><p>With <strong>central insights and reporting</strong>, you get:</p><ul><li>Transparent, real-time status reporting</li><li>Detailed logs and execution history</li><li>Proactive alerts before small issues become big problems</li></ul><p>Especially useful in hybrid environments where Intune, SCCM, and on-prem AD coexist.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-169bd91 elementor-widget elementor-widget-heading" data-id="169bd91" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">XOAP is the natural evolution for Autopilot-powered environments</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-e0a9a44 elementor-widget elementor-widget-text-editor" data-id="e0a9a44" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Microsoft Autopilot is a solid starting point, but XOAP transforms it into a powerful, secure, and scalable automation strategy:</p><ul><li>More control</li><li>Better compliance</li><li>Broader reach</li><li>Unified automation</li></ul><p><strong>Autopilot gets your devices ready – XOAP makes them productive, secure, and compliant.</strong></p><p>Want to see XOAP in action?<a href="https://calendly.com/xoap/30min" target="_blank" rel="noopener"> Book a personalized demo</a> today.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-e38b769 elementor-widget elementor-widget-spacer" data-id="e38b769" data-element_type="widget" data-e-type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
							<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
						</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-4d386dd e-con-full e-flex e-con e-child" data-id="4d386dd" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-ba9e329 e-con-full e-flex e-con e-child" data-id="ba9e329" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;gradient&quot;,&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-8a4b2cf e-con-full e-flex e-con e-child" data-id="8a4b2cf" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-329cfa0 elementor-widget__width-inherit elementor-widget elementor-widget-heading" data-id="329cfa0" data-element_type="widget" data-e-type="widget" data-settings="{&quot;_animation&quot;:&quot;none&quot;,&quot;_animation_tablet&quot;:&quot;fadeInDown&quot;}" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default"><a href="https://auth.dev.xoap.io/auth/realms/my.dev.xoap.io/protocol/openid-connect/registrations?client_id=portal&#038;response_type=code&#038;scope=openid%20email&#038;redirect_uri=https://my.dev.xoap.io&#038;kc_locale=en&#038;_ga=2.120291981.440170699.1710334465-1088457358.1705491014" target="_blank">Take your Autopilot deployment to the next level with XOAP</a></h2>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-6519c7b e-con-full e-flex e-con e-child" data-id="6519c7b" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-030b06a elementor-mobile-align-justify elementor-widget-mobile__width-inherit elementor-widget elementor-widget-global elementor-global-18898 elementor-widget-button" data-id="030b06a" data-element_type="widget" data-e-type="widget" data-settings="{&quot;_animation_mobile&quot;:&quot;none&quot;}" title="Get lifetime access" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://auth.dev.xoap.io/auth/realms/my.dev.xoap.io/protocol/openid-connect/registrations?client_id=portal&#038;response_type=code&#038;scope=openid%20email&#038;redirect_uri=https://my.dev.xoap.io&#038;kc_locale=en" target="_blank" title="Start for free">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Start for free</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				<div class="elementor-element elementor-element-9144c9e elementor-mobile-align-justify elementor-widget-mobile__width-inherit elementor-widget elementor-widget-global elementor-global-18905 elementor-widget-button" data-id="9144c9e" data-element_type="widget" data-e-type="widget" title="Get lifetime access" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://calendly.com/xoap/30min" target="_blank" title="Book a demo">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Book a demo</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				</div>
				</div>
				</div>
				</div>
		<p>The post <a href="https://dev.xoap.io/xoap-is-a-game-changer-even-if-you-already-use-microsoft-autopilot/">XOAP is a game-changer, even if you already use Microsoft Autopilot</a> appeared first on <a href="https://dev.xoap.io">XOAP</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Hybrid IT in practice: Top 6 challenges and how to solve them fast</title>
		<link>https://dev.xoap.io/hybrid-it-in-practice-top-6-challenges/</link>
		
		<dc:creator><![CDATA[Mario]]></dc:creator>
		<pubDate>Wed, 18 Jun 2025 12:14:01 +0000</pubDate>
				<category><![CDATA[Company & culture]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[hybrid it]]></category>
		<category><![CDATA[solutions]]></category>
		<guid isPermaLink="false">https://dev.xoap.io/?p=23624</guid>

					<description><![CDATA[<p>Managing hybrid IT in practice requires the right approach – uncover key strategies to simplify systems, cut costs and improve visibility.</p>
<p>The post <a href="https://dev.xoap.io/hybrid-it-in-practice-top-6-challenges/">Hybrid IT in practice: Top 6 challenges and how to solve them fast</a> appeared first on <a href="https://dev.xoap.io">XOAP</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="23624" class="elementor elementor-23624" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-86c21a6 e-flex e-con-boxed e-con e-parent" data-id="86c21a6" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-05c1ca8 e-con-full e-flex e-con e-child" data-id="05c1ca8" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-f9543e8 e-con-full e-flex e-con e-child" data-id="f9543e8" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-2c46337 e-con-full e-flex e-con e-child" data-id="2c46337" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-a37a44e elementor-toc--content-ellipsis elementor-toc--minimized-on-tablet elementor-widget elementor-widget-table-of-contents" data-id="a37a44e" data-element_type="widget" data-e-type="widget" data-settings="{&quot;headings_by_tags&quot;:[&quot;h2&quot;],&quot;container&quot;:&quot;main&quot;,&quot;exclude_headings_by_selector&quot;:[],&quot;marker_view&quot;:&quot;bullets&quot;,&quot;icon&quot;:{&quot;value&quot;:&quot;fas fa-arrow-right&quot;,&quot;library&quot;:&quot;fa-solid&quot;,&quot;rendered_tag&quot;:&quot;&lt;svg class=\&quot;e-font-icon-svg e-fas-arrow-right\&quot; viewBox=\&quot;0 0 448 512\&quot; xmlns=\&quot;http:\/\/www.w3.org\/2000\/svg\&quot;&gt;&lt;path d=\&quot;M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z\&quot;&gt;&lt;\/path&gt;&lt;\/svg&gt;&quot;},&quot;no_headings_message&quot;:&quot;No headings were found on this page.&quot;,&quot;minimize_box&quot;:&quot;yes&quot;,&quot;minimized_on&quot;:&quot;tablet&quot;,&quot;hierarchical_view&quot;:&quot;yes&quot;,&quot;min_height&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}" data-widget_type="table-of-contents.default">
				<div class="elementor-widget-container">
									<div class="elementor-toc__header">
						<h4 class="elementor-toc__header-title">
				Table of contents			</h4>
										<div class="elementor-toc__toggle-button elementor-toc__toggle-button--expand" role="button" tabindex="0" aria-controls="elementor-toc__a37a44e" aria-expanded="true" aria-label="Open table of contents"><svg aria-hidden="true" class="e-font-icon-svg e-fas-chevron-down" viewBox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path d="M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"></path></svg></div>
				<div class="elementor-toc__toggle-button elementor-toc__toggle-button--collapse" role="button" tabindex="0" aria-controls="elementor-toc__a37a44e" aria-expanded="true" aria-label="Close table of contents"><svg aria-hidden="true" class="e-font-icon-svg e-fas-chevron-up" viewBox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path d="M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z"></path></svg></div>
					</div>
				<div id="elementor-toc__a37a44e" class="elementor-toc__body">
			<div class="elementor-toc__spinner-container">
				<svg class="elementor-toc__spinner eicon-animation-spin e-font-icon-svg e-eicon-loading" aria-hidden="true" viewBox="0 0 1000 1000" xmlns="http://www.w3.org/2000/svg"><path d="M500 975V858C696 858 858 696 858 500S696 142 500 142 142 304 142 500H25C25 237 238 25 500 25S975 237 975 500 763 975 500 975Z"></path></svg>			</div>
		</div>
						</div>
				</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-a91d282 elementor-widget elementor-widget-text-editor" data-id="a91d282" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">Managing IT today is no simple task. With businesses relying on a mix of on-premises systems, cloud platforms, and modern applications, the hybrid IT landscape offers flexibility but also brings plenty of challenges.</p><p lang="hr">From making sure all your systems communicate well to keeping costs under control and staying secure, there’s a lot to juggle. In this blog, <strong>we’ll break down the most common challenges companies face in hybrid IT environments and share practical ways to tackle them</strong>.</p>								</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-d4c7ac4 e-con-full e-flex e-con e-child" data-id="d4c7ac4" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-42c5d93 elementor-widget elementor-widget-heading" data-id="42c5d93" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">1. The challenge of making everything work together
</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-9d9cda0 elementor-widget elementor-widget-heading" data-id="9d9cda0" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">What’s the issue?</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-3d4f9aa elementor-widget elementor-widget-text-editor" data-id="3d4f9aa" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">In a hybrid setup, you’re often working with a mix of older systems, modern applications, and different cloud platforms. Data silos, incompatible interfaces, and fragmented tools often create roadblocks that drain time and resources.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-ce0c216 elementor-widget elementor-widget-heading" data-id="ce0c216" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">How to fix it
</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-ff0674e elementor-widget elementor-widget-text-editor" data-id="ff0674e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">Many companies are turning to integration tools that help bridge the gap. Using APIs, containers, and orchestration tools like Kubernetes can make systems easier to manage. <strong>Automating workflows and standardizing</strong> <strong>how data is shared</strong> can also help reduce confusion and cut down on mistakes.</p><p lang="hr">Another way is to use an <a href="https://dev.xoap.io" target="_blank" rel="noopener">automation platform like XOAP</a> that simplifies integration across complex environments. XOAP helps unify connections between legacy systems, cloud platforms (like Azure, AWS, and GCP), and modern applications by offering pre-built connectors and low-code integration tools.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-a07da2c elementor-widget elementor-widget-heading" data-id="a07da2c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default"><a href="https://dev.xoap.io/platformXO/" target="_blank">2. Keeping systems secure and staying compliant
</a></h2>				</div>
				</div>
				<div class="elementor-element elementor-element-8a7a8ff elementor-widget elementor-widget-heading" data-id="8a7a8ff" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default"><a href="https://dev.xoap.io/platformXO/" target="_blank">What’s the issue?</a></h3>				</div>
				</div>
				<div class="elementor-element elementor-element-0e76239 elementor-widget elementor-widget-text-editor" data-id="0e76239" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">When your data and services are spread across different platforms, keeping everything secure becomes more difficult. It’s also harder to meet privacy and compliance requirements, especially if your business operates in multiple regions.</p><p lang="hr"><strong>Each place where data is stored or accessed is a potential risk</strong>. The more platforms you use, the harder it becomes to keep track of where your data is, who has access to it, and how it’s being protected.</p><p lang="hr">On top of that, different countries and industries have their own rules for how data should be handled. If your systems aren’t aligned, you could accidentally fall out of compliance, leading to fines or data breaches.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-2618d44 elementor-widget elementor-widget-heading" data-id="2618d44" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default"><a href="https://dev.xoap.io/platformXO/" target="_blank">How to fix it</a></h3>				</div>
				</div>
				<div class="elementor-element elementor-element-5f2b475 elementor-widget elementor-widget-text-editor" data-id="5f2b475" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>A zero-trust approach is becoming more common. This means every access request is verified, whether it’s coming from inside or outside your network. It also helps to use encryption, multi-factor authentication, and strong access controls. Regular audits and compliance checks can make sure you&#8217;re meeting industry standards like GDPR or HIPAA.</p><p>Plus, by using automation solutions, you can <strong>let these security checks run in the background</strong> without needing to do everything manually. They can catch things like misconfigurations, unusual activity, or policy violations early. This helps you stay secure and compliant without constantly checking everything yourself.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-4ee84d7 elementor-widget elementor-widget-text-editor" data-id="4ee84d7" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<blockquote><p><strong> Recommended read: </strong><a href="https://dev.xoap.io/how-to-automate-nis2-compliance-before-the-deadline-hits/" target="_blank" rel="noopener">How to automate NIS2 compliance</a></p></blockquote>								</div>
				</div>
				<div class="elementor-element elementor-element-6ee47cc elementor-widget elementor-widget-heading" data-id="6ee47cc" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">3. Struggling to see the full picture

</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-8812861 elementor-widget elementor-widget-heading" data-id="8812861" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">What's the issue?</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-c3eec4c elementor-widget elementor-widget-text-editor" data-id="c3eec4c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">It’s tough to manage what you can’t see. In hybrid IT, teams often l<strong>ack a complete view of what’s happening across all systems</strong>. This can lead to slower responses when something breaks or performs poorly.</p><p lang="hr">However, this isn’t about a lack of skill – it’s about infrastructure complexity. It has a lot of moving parts, from on-prem servers and cloud platforms to APIs, containers, and third-party tools. These are often spread out across different environments, which makes it hard to see everything at once. Even strong IT teams can miss issues if they don’t have a clear, unified view.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-becde8e elementor-widget elementor-widget-heading" data-id="becde8e" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">How to fix it</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-017ae8b elementor-widget elementor-widget-text-editor" data-id="017ae8b" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr"><strong>Centralized monitoring</strong> solutions can bring everything into one place. When you can see logs, metrics, and alerts across your full environment, it’s easier to catch issues early and respond quickly. It also helps your team stay proactive rather than just reacting to problems.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-1596a59 elementor-widget elementor-widget-text-editor" data-id="1596a59" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<blockquote><p><strong>Learn more</strong> about the <a href="https://dev.xoap.io/manage-your-server-and-desktop-systems/">platform to manage all desktops and servers from one place</a></p></blockquote>								</div>
				</div>
				<div class="elementor-element elementor-element-f4b7f28 elementor-widget elementor-widget-heading" data-id="f4b7f28" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">4. Surprise bills and rising costs
</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-de2be23 elementor-widget elementor-widget-heading" data-id="de2be23" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">What's the issue? </h3>				</div>
				</div>
				<div class="elementor-element elementor-element-f01a45e elementor-widget elementor-widget-text-editor" data-id="f01a45e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Cloud services promise to save money, but many teams find themselves hit with unexpected charges. <strong>If resources aren’t managed well, costs can add up fast</strong>.</p><p>For example, it’s easy to spin up new virtual machines or storage in the cloud, but if no one remembers to shut them down when they’re no longer needed, you’ll keep getting billed. The same goes for over-provisioned environments – paying for more capacity than you actually use. Even unused testing environments left running over the weekend can lead to surprisingly high costs.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-5a1543f elementor-widget elementor-widget-heading" data-id="5a1543f" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">How to fix it</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-66386b9 elementor-widget elementor-widget-text-editor" data-id="66386b9" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Cost control starts with visibility. Set usage budgets, track real-time consumption, and eliminate unused or idle resources automatically. Look for ways to <strong>right-size your workloads and automatically shut down unused resources</strong>. Even small changes can make a big difference in keeping costs under control.</p><p>If managing all that manually takes too much time, you can use a solution like <a href="https://dev.xoap.io/platformxo-scripted-actions/" target="_blank" rel="noopener">Scripted Actions</a> – such as automating and scheduling when your VMs should shut down.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-3943502 elementor-widget elementor-widget-heading" data-id="3943502" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">5. Performance issues and slow response times
</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-f817ea0 elementor-widget elementor-widget-heading" data-id="f817ea0" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">What's the issue?</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-994df4a elementor-widget elementor-widget-text-editor" data-id="994df4a" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>If users are <strong>far from where applications or data are hosted</strong>, they may experience delays or slow performance. This can be frustrating, especially for apps that need to respond in real time.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-67b3abe elementor-widget elementor-widget-heading" data-id="67b3abe" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">How to fix it</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-e5faa37 elementor-widget elementor-widget-text-editor" data-id="e5faa37" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Think about where your workloads are hosted. Place performance-critical apps closer to users, whether that means on premises or in a cloud region near them. Technologies like <strong>edge computing and content delivery networks (CDNs)</strong> can also help reduce latency and improve user experience.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-0cb204d elementor-widget elementor-widget-heading" data-id="0cb204d" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">6. Getting locked into one vendor
</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-de9931c elementor-widget elementor-widget-heading" data-id="de9931c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">What's the issue?</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-4155a83 elementor-widget elementor-widget-text-editor" data-id="4155a83" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Depending too much on a single cloud provider or tool <strong>can limit your options</strong>. If your business needs change or if the vendor raises prices, switching can be difficult and expensive.</p><p>Many companies start with one cloud provider because it’s easier or cheaper at first. But over time, they might find themselves stuck with that provider’s specific technologies or pricing models. This “vendor lock-in” can make it hard to adopt better tools or negotiate costs. It also limits your ability to take advantage of innovations from other providers.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-7e58b4c elementor-widget elementor-widget-heading" data-id="7e58b4c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">How to fix it</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-75936f5 elementor-widget elementor-widget-text-editor" data-id="75936f5" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">The best way to avoid vendor lock-in is to build your systems with flexibility in mind from the start. This means using open standards and tools that work across different clouds and on-prem environments, rather than relying on one provider’s unique technology.</p><p lang="hr">Platforms like <a href="https://dev.xoap.io" target="_blank" rel="noopener">XOAP</a> can help by making it easier to connect and manage different systems <strong>without forcing you to commit to a single vendor</strong>. This approach gives you more freedom to change or grow your setup without starting over. Planning for flexibility helps you stay in control and avoid getting stuck with one provider.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-169bd91 elementor-widget elementor-widget-heading" data-id="169bd91" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Building a resilient hybrid IT environment
</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-e0a9a44 elementor-widget elementor-widget-text-editor" data-id="e0a9a44" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">Hybrid IT combines on-premises infrastructure with cloud services, but it requires careful planning to avoid common traps.</p><p lang="hr">Tackling integration issues, strengthening security and compliance, maintaining centralized visibility, controlling costs, optimizing performance and preventing vendor lock-in are essential steps.</p><p lang="hr">By addressing these areas with the right processes and tools, you can build a hybrid IT environment that improves operational reliability, reduces risks, and supports business growth.</p><p lang="hr"><strong>Ready to regain control of your hybrid IT stack?</strong> See how XOAP helps teams cut costs, improve visibility and reduce manual tasks!</p>								</div>
				</div>
				<div class="elementor-element elementor-element-5b2e0ff elementor-widget elementor-widget-text-editor" data-id="5b2e0ff" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<blockquote><p><strong>You may also be interested in:<br /></strong><a href="https://dev.xoap.io/why-configuration-as-code-is-essential-for-modern-devops/" target="_blank" rel="noopener">→ Why configuration as code is essential for modern DevOps</a><br /><a href="https://dev.xoap.io/convert-group-policy-into-dsc-with-baselinemanagement-module/" target="_blank" rel="noopener">→ </a><a href="https://dev.xoap.io/why-automation-matters-and-how-it-teams-can-get-started/" target="_blank" rel="noopener">Why automation matters and how IT teams can get started</a><br /><a href="https://dev.xoap.io/how-to-use-layered-dsc-configurations/" target="_blank" rel="noopener">→ </a><a href="https://dev.xoap.io/ivanti-workspace-control-vdx-best-alternative/" target="_blank" rel="noopener"><span lang="en-US">Feature-rich alternative to Ivanti</span></a></p></blockquote>								</div>
				</div>
				<div class="elementor-element elementor-element-e38b769 elementor-widget elementor-widget-spacer" data-id="e38b769" data-element_type="widget" data-e-type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
							<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
						</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-4d386dd e-con-full e-flex e-con e-child" data-id="4d386dd" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-ba9e329 e-con-full e-flex e-con e-child" data-id="ba9e329" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;gradient&quot;,&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-8a4b2cf e-con-full e-flex e-con e-child" data-id="8a4b2cf" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-329cfa0 elementor-widget__width-inherit elementor-widget elementor-widget-heading" data-id="329cfa0" data-element_type="widget" data-e-type="widget" data-settings="{&quot;_animation&quot;:&quot;none&quot;,&quot;_animation_tablet&quot;:&quot;fadeInDown&quot;}" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default"><a href="https://auth.dev.xoap.io/auth/realms/my.dev.xoap.io/protocol/openid-connect/registrations?client_id=portal&#038;response_type=code&#038;scope=openid%20email&#038;redirect_uri=https://my.dev.xoap.io&#038;kc_locale=en&#038;_ga=2.120291981.440170699.1710334465-1088457358.1705491014" target="_blank">See how easy hybrid IT can be
</a></h2>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-6519c7b e-con-full e-flex e-con e-child" data-id="6519c7b" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-030b06a elementor-mobile-align-justify elementor-widget-mobile__width-inherit elementor-widget elementor-widget-global elementor-global-18898 elementor-widget-button" data-id="030b06a" data-element_type="widget" data-e-type="widget" data-settings="{&quot;_animation_mobile&quot;:&quot;none&quot;}" title="Get lifetime access" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://auth.dev.xoap.io/auth/realms/my.dev.xoap.io/protocol/openid-connect/registrations?client_id=portal&#038;response_type=code&#038;scope=openid%20email&#038;redirect_uri=https://my.dev.xoap.io&#038;kc_locale=en" target="_blank" title="Start for free">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Start for free</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				<div class="elementor-element elementor-element-9144c9e elementor-mobile-align-justify elementor-widget-mobile__width-inherit elementor-widget elementor-widget-global elementor-global-18905 elementor-widget-button" data-id="9144c9e" data-element_type="widget" data-e-type="widget" title="Get lifetime access" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://calendly.com/xoap/30min" target="_blank" title="Book a demo">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Book a demo</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-6b9911e e-flex e-con-boxed e-con e-parent" data-id="6b9911e" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
					<div class="e-con-inner">
					</div>
				</div>
				</div>
		<p>The post <a href="https://dev.xoap.io/hybrid-it-in-practice-top-6-challenges/">Hybrid IT in practice: Top 6 challenges and how to solve them fast</a> appeared first on <a href="https://dev.xoap.io">XOAP</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Rethinking infrastructure as code in 2025</title>
		<link>https://dev.xoap.io/rethinking-infrastructure-as-code-in-2025/</link>
		
		<dc:creator><![CDATA[Mario]]></dc:creator>
		<pubDate>Fri, 06 Jun 2025 10:28:41 +0000</pubDate>
				<category><![CDATA[Company & culture]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[infrastructure as code]]></category>
		<category><![CDATA[terraform]]></category>
		<guid isPermaLink="false">https://dev.xoap.io/?p=23415</guid>

					<description><![CDATA[<p>Infrastructure as code in 2025 is no longer just about provisioning cloud resources. It's about speed, automation and solutions that match modern development workflows.</p>
<p>The post <a href="https://dev.xoap.io/rethinking-infrastructure-as-code-in-2025/">Rethinking infrastructure as code in 2025</a> appeared first on <a href="https://dev.xoap.io">XOAP</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="23415" class="elementor elementor-23415" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-86c21a6 e-flex e-con-boxed e-con e-parent" data-id="86c21a6" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-05c1ca8 e-con-full e-flex e-con e-child" data-id="05c1ca8" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-f9543e8 e-con-full e-flex e-con e-child" data-id="f9543e8" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-2c46337 e-con-full e-flex e-con e-child" data-id="2c46337" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-a37a44e elementor-toc--content-ellipsis elementor-toc--minimized-on-tablet elementor-widget elementor-widget-table-of-contents" data-id="a37a44e" data-element_type="widget" data-e-type="widget" data-settings="{&quot;headings_by_tags&quot;:[&quot;h2&quot;],&quot;container&quot;:&quot;main&quot;,&quot;exclude_headings_by_selector&quot;:[],&quot;marker_view&quot;:&quot;bullets&quot;,&quot;icon&quot;:{&quot;value&quot;:&quot;fas fa-arrow-right&quot;,&quot;library&quot;:&quot;fa-solid&quot;,&quot;rendered_tag&quot;:&quot;&lt;svg class=\&quot;e-font-icon-svg e-fas-arrow-right\&quot; viewBox=\&quot;0 0 448 512\&quot; xmlns=\&quot;http:\/\/www.w3.org\/2000\/svg\&quot;&gt;&lt;path d=\&quot;M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z\&quot;&gt;&lt;\/path&gt;&lt;\/svg&gt;&quot;},&quot;no_headings_message&quot;:&quot;No headings were found on this page.&quot;,&quot;minimize_box&quot;:&quot;yes&quot;,&quot;minimized_on&quot;:&quot;tablet&quot;,&quot;hierarchical_view&quot;:&quot;yes&quot;,&quot;min_height&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}" data-widget_type="table-of-contents.default">
				<div class="elementor-widget-container">
									<div class="elementor-toc__header">
						<h4 class="elementor-toc__header-title">
				Table of contents			</h4>
										<div class="elementor-toc__toggle-button elementor-toc__toggle-button--expand" role="button" tabindex="0" aria-controls="elementor-toc__a37a44e" aria-expanded="true" aria-label="Open table of contents"><svg aria-hidden="true" class="e-font-icon-svg e-fas-chevron-down" viewBox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path d="M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"></path></svg></div>
				<div class="elementor-toc__toggle-button elementor-toc__toggle-button--collapse" role="button" tabindex="0" aria-controls="elementor-toc__a37a44e" aria-expanded="true" aria-label="Close table of contents"><svg aria-hidden="true" class="e-font-icon-svg e-fas-chevron-up" viewBox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path d="M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z"></path></svg></div>
					</div>
				<div id="elementor-toc__a37a44e" class="elementor-toc__body">
			<div class="elementor-toc__spinner-container">
				<svg class="elementor-toc__spinner eicon-animation-spin e-font-icon-svg e-eicon-loading" aria-hidden="true" viewBox="0 0 1000 1000" xmlns="http://www.w3.org/2000/svg"><path d="M500 975V858C696 858 858 696 858 500S696 142 500 142 142 304 142 500H25C25 237 238 25 500 25S975 237 975 500 763 975 500 975Z"></path></svg>			</div>
		</div>
						</div>
				</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-a91d282 elementor-widget elementor-widget-text-editor" data-id="a91d282" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">Infrastructure as code has come a long way. What started as a breakthrough in cloud provisioning has now become a<strong> standard part of how teams build and manage modern applications</strong>.</p><p lang="hr">But as development practices have matured, expectations around infrastructure have shifted. Today, we’re not just defining cloud resources; we’re orchestrating fast, automated, and dynamic environments that match the speed of software delivery.</p><p lang="hr">It’s a good time to ask: Are the tools we’ve used still the right ones?</p>								</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-d4c7ac4 e-con-full e-flex e-con e-child" data-id="d4c7ac4" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-42c5d93 elementor-widget elementor-widget-heading" data-id="42c5d93" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Terraform’s role in the early days
</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-3d4f9aa elementor-widget elementor-widget-text-editor" data-id="3d4f9aa" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">As we rethink infrastructure as code in 2025, it’s natural to revisit the tools that defined its early adoption – and Terraform is at the top of that list. When it first became popular, it introduced a new way of thinking about infrastructure. It let teams describe their environments in code, track changes in version control, and apply updates in a controlled, repeatable way. At a time when most infrastructure was long-lived and manually managed, this was a major improvement.</p><p lang="hr">Teams could use Terraform to build production systems with confidence. It worked well for environments that changed slowly, were managed by dedicated ops teams, and followed careful planning and review processes.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-be2e8c1 elementor-widget elementor-widget-heading" data-id="be2e8c1" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">The way we work has changed
</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-30023d0 elementor-widget elementor-widget-text-editor" data-id="30023d0" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">Today, software moves faster. Developers deploy code more often, infrastructure is spun up and torn down as part of test pipelines, and different teams contribute to the same codebase. Changes are no longer occasional; they’re constant. That shift has put pressure on tools that weren’t built with this kind of speed and flexibility in mind.</p><p><span lang="hr">Terraform can still handle these cases, but it often needs extra tooling and a</span><span lang="de"> lot of </span><span lang="hr">coordination. Managing shared state, writing wrapper scripts, and organizing modules across environments takes time. It works, but it can be heavy. And when you’re moving fast, that weight starts to matter.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-a07da2c elementor-widget elementor-widget-heading" data-id="a07da2c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default"><a href="https://dev.xoap.io/platformXO/" target="_blank">Modern infrastructure might need something extra
</a></h2>				</div>
				</div>
				<div class="elementor-element elementor-element-0e76239 elementor-widget elementor-widget-text-editor" data-id="0e76239" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">The new reality of<strong> software delivery demands infrastructure that fits directly into automated workflows</strong>. Instead of provisioning being a separate task, it’s part of every commit, every pull request, and every deployment.</p><p><span lang="hr">This has led to new expectations. Teams want infrastructure changes to be easy to review, easy to test, and easy to track. They want developers </span><span lang="de">and operations </span><span lang="hr">to be able to contribute without deep knowledge of tooling. And they want infrastructure to follow the same principles as their application code: fast feedback, versioned history, and safe automation.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-30e9359 elementor-widget elementor-widget-heading" data-id="30e9359" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default"><a href="https://dev.xoap.io/platformXO/" target="_blank">Wrong fit for infrastructure</a></h2>				</div>
				</div>
				<div class="elementor-element elementor-element-33c3138 elementor-widget elementor-widget-text-editor" data-id="33c3138" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>DevOps and Agile were built for software delivery, not infrastructure operations. Infrastructure prioritizes stability, predictability, and security – not constant iteration. Furthermore, applying DevOps patterns to infrastructure ties high-cost experts to day-to-day tasks. Those experts should focus on architecture and strategy, not routine operations. Result: wasted talent and rising costs.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-6ee47cc elementor-widget elementor-widget-heading" data-id="6ee47cc" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">A quiet shift toward already existing solutions

</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-c3eec4c elementor-widget elementor-widget-text-editor" data-id="c3eec4c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span lang="hr">In response, e</span><span lang="de">xisting </span><span lang="hr">solutions have b</span><span lang="de">een around for a long time </span><span lang="hr">that still follow the core ideas of infrastructure as code, but with different priorities. </span><span lang="hr">Instead of </span><span lang="de">being dependent</span><span lang="hr"> on state files a</span><span lang="de">nd extensive tooling</span><span lang="hr">, t</span><span lang="de">hey are often enough to fulfill the needs of modern infrastructure deployments. We are discussing<strong> cloud-provider SDKs and command-line interfaces (CLIs)</strong>.</span></p><p lang="de">These tools offer first-class feature access without the Terraform delay. And they give you<strong> finer control and custom logic</strong> through programmatic control and additional conditional logic, which is sometimes cumbersome or verbose in Terraform.</p><p lang="de">Often, the approach to implementing small-scale tasks leads to easier maintainability, faster execution, more predictable deployments, and less stress for the teams involved.</p><p lang="de">Last but not least, it reduces abstraction overhead; <strong>native tools do exactly what the API says</strong>, no translation or misalignment.</p><p lang="de">We could still say that with Terraform, you have one language that you have to learn to automate your entire infrastructure deployment on different platforms, but although you are using only one language, you still have to adjust all resource definitions to the cloud-specific parameters. So, why not use platform-specific tools directly from the start?</p>								</div>
				</div>
				<div class="elementor-element elementor-element-169bd91 elementor-widget elementor-widget-heading" data-id="169bd91" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Evolving with the times
</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-e0a9a44 elementor-widget elementor-widget-text-editor" data-id="e0a9a44" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr"><span data-teams="true">Infrastructure as code in 2025 goes beyond basic provisioning; it must plug directly into fast, automated workflows. Terraform earned its place when environments changed slowly and were long-lived, but today’s rapid, continuous changes add coordination overhead (state, wrappers, module orchestration). Many teams are quietly shifting parts of their workflows to cloud-native SDKs and CLIs for first-class features, finer control, less abstraction, and more predictable deployments.</span></p><p lang="hr"><strong>The goal isn’t to get rid of what works, but to find tools that grow with your team&#8217;s needs.</strong> As the world of infrastructure changes, solutions will change too. For example, <a href="https://dev.xoap.io" target="_blank" rel="noopener">XOAP</a> is one of the new generation solutions built for fast-paced development (and no extra complexity). Experts define the foundation once (images, platforms, policies) and operators handle daily work independently via GUI and automation. Outcome? Stable infrastructure, experts freed to focus on high-value work, and lower costs aligned with the new generation of tools designed for fast-paced delivery (without extra complexity).</p><p lang="hr">You can see how it works for free, just click the &#8220;Start for free&#8221; button below!</p>								</div>
				</div>
				<div class="elementor-element elementor-element-5b2e0ff elementor-widget elementor-widget-text-editor" data-id="5b2e0ff" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<blockquote><p><strong>You may also be interested in:<br /></strong><a href="https://dev.xoap.io/why-configuration-as-code-is-essential-for-modern-devops/" target="_blank" rel="noopener">→ Why configuration as code is essential for modern DevOps</a><br /><a href="https://dev.xoap.io/convert-group-policy-into-dsc-with-baselinemanagement-module/" target="_blank" rel="noopener">→ </a><a href="https://dev.xoap.io/why-automation-matters-and-how-it-teams-can-get-started/" target="_blank" rel="noopener">Why automation matters and how IT teams can get started</a><br /><a href="https://dev.xoap.io/how-to-use-layered-dsc-configurations/" target="_blank" rel="noopener">→ </a><a href="https://dev.xoap.io/ivanti-workspace-control-vdx-best-alternative/" target="_blank" rel="noopener"><span lang="en-US">Feature-rich alternative to Ivanti</span></a></p></blockquote>								</div>
				</div>
				<div class="elementor-element elementor-element-e38b769 elementor-widget elementor-widget-spacer" data-id="e38b769" data-element_type="widget" data-e-type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
							<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
						</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-4d386dd e-con-full e-flex e-con e-child" data-id="4d386dd" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-ba9e329 e-con-full e-flex e-con e-child" data-id="ba9e329" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;gradient&quot;,&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-8a4b2cf e-con-full e-flex e-con e-child" data-id="8a4b2cf" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-329cfa0 elementor-widget__width-inherit elementor-widget elementor-widget-heading" data-id="329cfa0" data-element_type="widget" data-e-type="widget" data-settings="{&quot;_animation&quot;:&quot;none&quot;,&quot;_animation_tablet&quot;:&quot;fadeInDown&quot;}" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default"><a href="https://auth.dev.xoap.io/auth/realms/my.dev.xoap.io/protocol/openid-connect/registrations?client_id=portal&#038;response_type=code&#038;scope=openid%20email&#038;redirect_uri=https://my.dev.xoap.io&#038;kc_locale=en&#038;_ga=2.120291981.440170699.1710334465-1088457358.1705491014" target="_blank">Speed up your infrastructure management</a></h2>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-6519c7b e-con-full e-flex e-con e-child" data-id="6519c7b" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-030b06a elementor-mobile-align-justify elementor-widget-mobile__width-inherit elementor-widget elementor-widget-global elementor-global-18898 elementor-widget-button" data-id="030b06a" data-element_type="widget" data-e-type="widget" data-settings="{&quot;_animation_mobile&quot;:&quot;none&quot;}" title="Get lifetime access" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://auth.dev.xoap.io/auth/realms/my.dev.xoap.io/protocol/openid-connect/registrations?client_id=portal&#038;response_type=code&#038;scope=openid%20email&#038;redirect_uri=https://my.dev.xoap.io&#038;kc_locale=en" target="_blank" title="Start for free">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Start for free</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				<div class="elementor-element elementor-element-9144c9e elementor-mobile-align-justify elementor-widget-mobile__width-inherit elementor-widget elementor-widget-global elementor-global-18905 elementor-widget-button" data-id="9144c9e" data-element_type="widget" data-e-type="widget" title="Get lifetime access" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://calendly.com/xoap/30min" target="_blank" title="Book a demo">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Book a demo</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				</div>
				</div>
				</div>
				</div>
		<p>The post <a href="https://dev.xoap.io/rethinking-infrastructure-as-code-in-2025/">Rethinking infrastructure as code in 2025</a> appeared first on <a href="https://dev.xoap.io">XOAP</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Windows Server 2019 end-of-life: What system engineers need to do now</title>
		<link>https://dev.xoap.io/windows-server-2019-end-of-life/</link>
		
		<dc:creator><![CDATA[Mario]]></dc:creator>
		<pubDate>Tue, 27 May 2025 08:59:06 +0000</pubDate>
				<category><![CDATA[Library]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[windows server 2019]]></category>
		<category><![CDATA[xoap]]></category>
		<guid isPermaLink="false">https://dev.xoap.io/?p=22493</guid>

					<description><![CDATA[<p>Windows Server 2019 is losing support for Microsoft 365 Apps in October 2025 and is reaching end of life in 2029. </p>
<p>The post <a href="https://dev.xoap.io/windows-server-2019-end-of-life/">Windows Server 2019 end-of-life: What system engineers need to do now</a> appeared first on <a href="https://dev.xoap.io">XOAP</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="22493" class="elementor elementor-22493" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-86c21a6 e-flex e-con-boxed e-con e-parent" data-id="86c21a6" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-05c1ca8 e-con-full e-flex e-con e-child" data-id="05c1ca8" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-f9543e8 e-con-full e-flex e-con e-child" data-id="f9543e8" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-2c46337 e-con-full e-flex e-con e-child" data-id="2c46337" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-a37a44e elementor-toc--content-ellipsis elementor-toc--minimized-on-tablet elementor-widget elementor-widget-table-of-contents" data-id="a37a44e" data-element_type="widget" data-e-type="widget" data-settings="{&quot;headings_by_tags&quot;:[&quot;h2&quot;],&quot;container&quot;:&quot;main&quot;,&quot;exclude_headings_by_selector&quot;:[],&quot;marker_view&quot;:&quot;bullets&quot;,&quot;icon&quot;:{&quot;value&quot;:&quot;fas fa-arrow-right&quot;,&quot;library&quot;:&quot;fa-solid&quot;,&quot;rendered_tag&quot;:&quot;&lt;svg class=\&quot;e-font-icon-svg e-fas-arrow-right\&quot; viewBox=\&quot;0 0 448 512\&quot; xmlns=\&quot;http:\/\/www.w3.org\/2000\/svg\&quot;&gt;&lt;path d=\&quot;M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z\&quot;&gt;&lt;\/path&gt;&lt;\/svg&gt;&quot;},&quot;no_headings_message&quot;:&quot;No headings were found on this page.&quot;,&quot;minimize_box&quot;:&quot;yes&quot;,&quot;minimized_on&quot;:&quot;tablet&quot;,&quot;hierarchical_view&quot;:&quot;yes&quot;,&quot;min_height&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}" data-widget_type="table-of-contents.default">
				<div class="elementor-widget-container">
									<div class="elementor-toc__header">
						<h4 class="elementor-toc__header-title">
				Table of contents			</h4>
										<div class="elementor-toc__toggle-button elementor-toc__toggle-button--expand" role="button" tabindex="0" aria-controls="elementor-toc__a37a44e" aria-expanded="true" aria-label="Open table of contents"><svg aria-hidden="true" class="e-font-icon-svg e-fas-chevron-down" viewBox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path d="M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"></path></svg></div>
				<div class="elementor-toc__toggle-button elementor-toc__toggle-button--collapse" role="button" tabindex="0" aria-controls="elementor-toc__a37a44e" aria-expanded="true" aria-label="Close table of contents"><svg aria-hidden="true" class="e-font-icon-svg e-fas-chevron-up" viewBox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path d="M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z"></path></svg></div>
					</div>
				<div id="elementor-toc__a37a44e" class="elementor-toc__body">
			<div class="elementor-toc__spinner-container">
				<svg class="elementor-toc__spinner eicon-animation-spin e-font-icon-svg e-eicon-loading" aria-hidden="true" viewBox="0 0 1000 1000" xmlns="http://www.w3.org/2000/svg"><path d="M500 975V858C696 858 858 696 858 500S696 142 500 142 142 304 142 500H25C25 237 238 25 500 25S975 237 975 500 763 975 500 975Z"></path></svg>			</div>
		</div>
						</div>
				</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-a91d282 elementor-widget elementor-widget-text-editor" data-id="a91d282" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong>Windows Server 2019 is reaching the end of support in January 2029</strong>. For system engineers and IT administrators, this isn’t just another update—it’s a critical turning point. Failing to act now could expose your organization to major security risks, compliance failures and operational disruptions.</p>								</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-d4c7ac4 e-con-full e-flex e-con e-child" data-id="d4c7ac4" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-52df673 elementor-widget elementor-widget-heading" data-id="52df673" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Available options after end-of-life</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-3d4f9aa elementor-widget elementor-widget-text-editor" data-id="3d4f9aa" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>To navigate beyond 2029, organizations must either:</p><p>• upgrade to newer server versions or <br />• opt for Extended Security Updates (ESU) to continue receiving critical security patches, thus maintaining compliance and security standards.</p><p>The ESU program, available for up to three years, can drive up costs quickly, especially for enterprises. In other words,<strong> the options are risking security or significantly increasing operational costs for outdated infrastructure</strong>.</p><p>Moreover, <strong>Microsoft 365 Apps</strong> is supported on Windows Server 2019 only <strong>until October 2025</strong>. Security updates will be available for three more years, ending in October 2028. After the end of support, they too will need to be redeployed.</p><p>Below, we outline what system engineers and IT admins need to focus on now—and how the <a href="https://dev.xoap.io/" target="_blank" rel="noopener">XOAP</a> automation platform can help.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-6c108e2 elementor-widget elementor-widget-image" data-id="6c108e2" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="1920" height="1280" src="https://dev.xoap.io/wp-content/uploads/2025/05/programming-background-with-person-working-with-codes-computer-1-scaled.webp" class="attachment-full size-full wp-image-22567" alt="Windows Server 2019 end-of-life" srcset="https://dev.xoap.io/wp-content/uploads/2025/05/programming-background-with-person-working-with-codes-computer-1-scaled.webp 1920w, https://dev.xoap.io/wp-content/uploads/2025/05/programming-background-with-person-working-with-codes-computer-1-300x200.webp 300w, https://dev.xoap.io/wp-content/uploads/2025/05/programming-background-with-person-working-with-codes-computer-1-1024x683.webp 1024w, https://dev.xoap.io/wp-content/uploads/2025/05/programming-background-with-person-working-with-codes-computer-1-768x512.webp 768w, https://dev.xoap.io/wp-content/uploads/2025/05/programming-background-with-person-working-with-codes-computer-1-1536x1024.webp 1536w, https://dev.xoap.io/wp-content/uploads/2025/05/programming-background-with-person-working-with-codes-computer-1-18x12.webp 18w" sizes="(max-width: 1920px) 100vw, 1920px" />															</div>
				</div>
				<div class="elementor-element elementor-element-297b92d elementor-widget elementor-widget-text-editor" data-id="297b92d" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<div style="text-align: right;"><a href="https://www.freepik.com/free-photo/programming-background-with-person-working-with-codes-computer_38669443.htm">Image by freepik</a></div>								</div>
				</div>
				<div class="elementor-element elementor-element-fc43206 elementor-widget elementor-widget-heading" data-id="fc43206" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Steps to take now</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-a07da2c elementor-widget elementor-widget-heading" data-id="a07da2c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h4 class="elementor-heading-title elementor-size-default"><a href="https://dev.xoap.io/platformXO/" target="_blank">1. Inventory and assess your environment</a></h4>				</div>
				</div>
				<div class="elementor-element elementor-element-0e76239 elementor-widget elementor-widget-text-editor" data-id="0e76239" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Start by<strong> identifying all servers still running Windows Server 2019, and all applications tied to it</strong>—especially those hosting Microsoft 365 Apps through Remote Desktop Services (RDS) or VDI. Understanding your environment is the first step to planning the migration!</p><p><strong>How XOAP helps:</strong><br />XOAP integrates seamlessly with your environment to help with discovery and assessment workflows. You’ll get a clear, centralized view without manual spreadsheets or time-consuming audits.<br /><br /></p>								</div>
				</div>
				<div class="elementor-element elementor-element-b732a83 elementor-widget elementor-widget-heading" data-id="b732a83" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h4 class="elementor-heading-title elementor-size-default"><a href="https://dev.xoap.io/platformXO/" target="_blank">2. Plan migrations to supported platforms</a></h4>				</div>
				</div>
				<div class="elementor-element elementor-element-bd47d78 elementor-widget elementor-widget-text-editor" data-id="bd47d78" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Post-Server 2019, Microsoft is emphasizing <strong>Windows Server 2022, Azure Virtual Desktop (AVD) and Windows 11</strong> multi-session environments. Choosing the right target platform for your infrastructure is critical to ensure ongoing support and security.</p><p><strong>How XOAP helps:</strong><br />Whatever you choose, XOAP covers it, making sure you <strong>remain platform independent</strong> <strong>without getting stuck in vendor lock-in</strong>. XOAP makes deploying new environments across Azure, AWS or hybrid clouds easy, while ensuring best practices and security benchmarks are baked in.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-7acba2a elementor-widget elementor-widget-text-editor" data-id="7acba2a" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<blockquote><p><strong>Learn more:</strong> <a href="https://dev.xoap.io/platformXO/" target="_blank" rel="noopener">Platform and infrastructure automation </a></p></blockquote>								</div>
				</div>
				<div class="elementor-element elementor-element-e79e5b8 elementor-widget elementor-widget-heading" data-id="e79e5b8" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h4 class="elementor-heading-title elementor-size-default"><a href="https://dev.xoap.io/platformXO/" target="_blank">3. Automate Microsoft 365 App deployments</a></h4>				</div>
				</div>
				<div class="elementor-element elementor-element-6d3e264 elementor-widget elementor-widget-text-editor" data-id="6d3e264" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>With older versions of Microsoft 365 Apps losing support, you&#8217;ll need to redeploy them on modern OS platforms. Manual installation at scale is slow, error-prone and frustrating.</p><p><strong>How XOAP helps:</strong><br />XOAP automates Microsoft 365 App deployments with <strong>consistent, standardized configurations.</strong> Whether you&#8217;re dealing with dozens or thousands of systems, XOAP ensures that every desktop or server meets Microsoft’s supported requirements.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-ce55a23 elementor-widget elementor-widget-heading" data-id="ce55a23" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h4 class="elementor-heading-title elementor-size-default"><a href="https://dev.xoap.io/platformXO/" target="_blank">4. Secure and patch your new environment
</a></h4>				</div>
				</div>
				<div class="elementor-element elementor-element-4be91f4 elementor-widget elementor-widget-text-editor" data-id="4be91f4" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Migrating off Server 2019 is just the beginning. Your new environments must stay patched, compliant and aligned with evolving security standards.</p><p><strong>How XOAP helps:</strong><br />XOAP automates patch management, compliance scanning and remediation tasks across cloud and hybrid infrastructures—keeping your new environment secure with minimal hands-on work.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-c6f119d elementor-widget elementor-widget-text-editor" data-id="c6f119d" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<blockquote><p><strong>Also read:</strong> <a href="https://dev.xoap.io/solution-security-compliance/" target="_blank" rel="noopener">Automating security and compliance benchmarks with XOAP</a></p></blockquote>								</div>
				</div>
				<div class="elementor-element elementor-element-062d5e9 elementor-widget elementor-widget-heading" data-id="062d5e9" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h4 class="elementor-heading-title elementor-size-default"><a href="https://dev.xoap.io/platformXO/" target="_blank">5. Train for a future-proof approach</a></h4>				</div>
				</div>
				<div class="elementor-element elementor-element-f064d10 elementor-widget elementor-widget-text-editor" data-id="f064d10" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>IT operations are moving away from manual management toward low-code and no-code automation. System engineers and admins who embrace this shift will be better positioned to lead future infrastructure projects.</p><p><strong>How XOAP helps:</strong><br />XOAP’s no-code image build pipelines and wizard-assisted configurations make automation accessible to IT teams without requiring scripting or DevOps backgrounds. You can start automating today with minimal onboarding time.<br /><br /></p>								</div>
				</div>
				<div class="elementor-element elementor-element-6ee47cc elementor-widget elementor-widget-heading" data-id="6ee47cc" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Acting now pays off</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-c3eec4c elementor-widget elementor-widget-text-editor" data-id="c3eec4c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>October is just around the corner, and 2029 not that far away. Large migrations and modernization efforts take months or even years.</p><p>System engineers and IT admins who act now—and who automate wherever possible—will avoid the stress of last-minute scrambles and future-proof their organizations.</p><p>With <a href="https://dev.xoap.io/" target="_blank" rel="noopener">XOAP</a>, you can automate inventory, migrations, deployments, patching and compliance, allowing you to focus on what matters most: delivering secure, modern infrastructure that’s ready for the next decade. </p>								</div>
				</div>
				<div class="elementor-element elementor-element-e38b769 elementor-widget elementor-widget-spacer" data-id="e38b769" data-element_type="widget" data-e-type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
							<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-15a4761 elementor-widget elementor-widget-text-editor" data-id="15a4761" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f4d6.png" alt="📖" class="wp-smiley" style="height: 1em; max-height: 1em;" /> You might find this interesting:<br /></strong> <a href="https://dev.xoap.io/windows-11-migration-made-easy-with-xoap/" target="_blank" rel="noopener">&gt;&gt; Windows 11 migration made easy with XOAP</a><br /><a href="https://dev.xoap.io/complete-windows-11-migration-guide-for-enterprise-it/" target="_blank" rel="noopener">&gt;&gt; Complete Windows 11 migration guide for enterprise IT</a><br /><br /></p>								</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-4d386dd e-con-full e-flex e-con e-child" data-id="4d386dd" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-ba9e329 e-con-full e-flex e-con e-child" data-id="ba9e329" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;gradient&quot;,&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-8a4b2cf e-con-full e-flex e-con e-child" data-id="8a4b2cf" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-329cfa0 elementor-widget__width-inherit elementor-widget elementor-widget-heading" data-id="329cfa0" data-element_type="widget" data-e-type="widget" data-settings="{&quot;_animation&quot;:&quot;none&quot;,&quot;_animation_tablet&quot;:&quot;fadeInDown&quot;}" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default"><a href="https://auth.dev.xoap.io/auth/realms/my.dev.xoap.io/protocol/openid-connect/registrations?client_id=portal&#038;response_type=code&#038;scope=openid%20email&#038;redirect_uri=https://my.dev.xoap.io&#038;kc_locale=en&#038;_ga=2.120291981.440170699.1710334465-1088457358.1705491014" target="_blank">Use XOAP to simplify migration</a></h2>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-6519c7b e-con-full e-flex e-con e-child" data-id="6519c7b" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-030b06a elementor-mobile-align-justify elementor-widget-mobile__width-inherit elementor-widget elementor-widget-global elementor-global-18898 elementor-widget-button" data-id="030b06a" data-element_type="widget" data-e-type="widget" data-settings="{&quot;_animation_mobile&quot;:&quot;none&quot;}" title="Get lifetime access" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://auth.dev.xoap.io/auth/realms/my.dev.xoap.io/protocol/openid-connect/registrations?client_id=portal&#038;response_type=code&#038;scope=openid%20email&#038;redirect_uri=https://my.dev.xoap.io&#038;kc_locale=en" target="_blank" title="Start for free">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Start for free</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				<div class="elementor-element elementor-element-9144c9e elementor-mobile-align-justify elementor-widget-mobile__width-inherit elementor-widget elementor-widget-global elementor-global-18905 elementor-widget-button" data-id="9144c9e" data-element_type="widget" data-e-type="widget" title="Get lifetime access" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://calendly.com/xoap/30min" target="_blank" title="Book a demo">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Book a demo</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				</div>
				</div>
				</div>
				</div>
		<p>The post <a href="https://dev.xoap.io/windows-server-2019-end-of-life/">Windows Server 2019 end-of-life: What system engineers need to do now</a> appeared first on <a href="https://dev.xoap.io">XOAP</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Why use custom DSC modules?</title>
		<link>https://dev.xoap.io/why-use-custom-dsc-modules/</link>
		
		<dc:creator><![CDATA[Mario]]></dc:creator>
		<pubDate>Fri, 09 May 2025 11:44:42 +0000</pubDate>
				<category><![CDATA[Company & culture]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[dsc]]></category>
		<category><![CDATA[xoap]]></category>
		<guid isPermaLink="false">https://dev.xoap.io/?p=22513</guid>

					<description><![CDATA[<p>See why using custom DSC modules can fix tricky setups and make your automation work the way you want.</p>
<p>The post <a href="https://dev.xoap.io/why-use-custom-dsc-modules/">Why use custom DSC modules?</a> appeared first on <a href="https://dev.xoap.io">XOAP</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="22513" class="elementor elementor-22513" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-86c21a6 e-flex e-con-boxed e-con e-parent" data-id="86c21a6" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-05c1ca8 e-con-full e-flex e-con e-child" data-id="05c1ca8" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-f9543e8 e-con-full e-flex e-con e-child" data-id="f9543e8" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-2c46337 e-con-full e-flex e-con e-child" data-id="2c46337" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-a37a44e elementor-toc--content-ellipsis elementor-toc--minimized-on-tablet elementor-widget elementor-widget-table-of-contents" data-id="a37a44e" data-element_type="widget" data-e-type="widget" data-settings="{&quot;headings_by_tags&quot;:[&quot;h2&quot;],&quot;container&quot;:&quot;main&quot;,&quot;exclude_headings_by_selector&quot;:[],&quot;marker_view&quot;:&quot;bullets&quot;,&quot;icon&quot;:{&quot;value&quot;:&quot;fas fa-arrow-right&quot;,&quot;library&quot;:&quot;fa-solid&quot;,&quot;rendered_tag&quot;:&quot;&lt;svg class=\&quot;e-font-icon-svg e-fas-arrow-right\&quot; viewBox=\&quot;0 0 448 512\&quot; xmlns=\&quot;http:\/\/www.w3.org\/2000\/svg\&quot;&gt;&lt;path d=\&quot;M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z\&quot;&gt;&lt;\/path&gt;&lt;\/svg&gt;&quot;},&quot;no_headings_message&quot;:&quot;No headings were found on this page.&quot;,&quot;minimize_box&quot;:&quot;yes&quot;,&quot;minimized_on&quot;:&quot;tablet&quot;,&quot;hierarchical_view&quot;:&quot;yes&quot;,&quot;min_height&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}" data-widget_type="table-of-contents.default">
				<div class="elementor-widget-container">
									<div class="elementor-toc__header">
						<h4 class="elementor-toc__header-title">
				Table of contents			</h4>
										<div class="elementor-toc__toggle-button elementor-toc__toggle-button--expand" role="button" tabindex="0" aria-controls="elementor-toc__a37a44e" aria-expanded="true" aria-label="Open table of contents"><svg aria-hidden="true" class="e-font-icon-svg e-fas-chevron-down" viewBox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path d="M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"></path></svg></div>
				<div class="elementor-toc__toggle-button elementor-toc__toggle-button--collapse" role="button" tabindex="0" aria-controls="elementor-toc__a37a44e" aria-expanded="true" aria-label="Close table of contents"><svg aria-hidden="true" class="e-font-icon-svg e-fas-chevron-up" viewBox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path d="M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z"></path></svg></div>
					</div>
				<div id="elementor-toc__a37a44e" class="elementor-toc__body">
			<div class="elementor-toc__spinner-container">
				<svg class="elementor-toc__spinner eicon-animation-spin e-font-icon-svg e-eicon-loading" aria-hidden="true" viewBox="0 0 1000 1000" xmlns="http://www.w3.org/2000/svg"><path d="M500 975V858C696 858 858 696 858 500S696 142 500 142 142 304 142 500H25C25 237 238 25 500 25S975 237 975 500 763 975 500 975Z"></path></svg>			</div>
		</div>
						</div>
				</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-a91d282 elementor-widget elementor-widget-text-editor" data-id="a91d282" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">If you&#8217;re working in IT or just getting started with automation using PowerShell, you’ve probably come across<strong> Desired State Configuration (DSC)</strong>. It’s a tool that helps you set up your systems exactly how you want them and then keeps them that way.</p><p lang="hr">With DSC, you can tell a server how it should be configured. Things like which programs should be installed, what services should be running, or how security settings should be applied. Microsoft gives you a lot of built-in resources to do this, but sometimes they don’t cover everything you need.</p><p lang="hr">That’s where custom DSC modules come in. Let’s walk through <strong>what they are, why they matter, and how they can help</strong> make your life easier when managing systems.</p>								</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-d4c7ac4 e-con-full e-flex e-con e-child" data-id="d4c7ac4" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-52df673 elementor-widget elementor-widget-heading" data-id="52df673" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">What is a DSC module, in simple terms
</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-3d4f9aa elementor-widget elementor-widget-text-editor" data-id="3d4f9aa" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>A DSC (Desired State Configuration) module is like a set of instructions grouped together to manage a specific part of your system, for example, making sure a Windows service is always running.</p><p>A custom module means <strong>you (or your team) created your own set of instructions</strong>. Maybe you need to manage a company-specific app, apply a setting that Microsoft’s resources don’t cover, or make something work in a very specific way. Instead of working around those limitations every time, you build a custom module once and use it whenever you need it.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-fc43206 elementor-widget elementor-widget-heading" data-id="fc43206" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Solving real problems when built-in resources fall short
</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-30023d0 elementor-widget elementor-widget-text-editor" data-id="30023d0" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">Microsoft’s built-in DSC resources are great for common tasks, like turning on Windows features or setting firewall rules. But most IT environments have unique needs.</p><p lang="hr">Maybe your company has in-house software that needs special setup steps. Or maybe your security team requires settings that aren’t included in the default resources. With custom modules,<strong> you can write exactly what you need</strong>, so your configuration works the way your environment demands.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-a07da2c elementor-widget elementor-widget-heading" data-id="a07da2c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default"><a href="https://dev.xoap.io/platformXO/" target="_blank">Keeping your configurations clean and organized
</a></h2>				</div>
				</div>
				<div class="elementor-element elementor-element-0e76239 elementor-widget elementor-widget-text-editor" data-id="0e76239" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">As your configuration scripts grow, they can get long and hard to manage, especially if you’re copying the same code over and over across different files.</p><p lang="hr">With custom DSC modules, you can <strong>move that repeated logic into its own package</strong>. This keeps your main configuration scripts shorter and cleaner. It also makes updates easier, since you only need to change the logic in one place, not in ten different files.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-6ee47cc elementor-widget elementor-widget-heading" data-id="6ee47cc" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Handling different environments and setups 

</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-c3eec4c elementor-widget elementor-widget-text-editor" data-id="c3eec4c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">Not all systems are the same. A web server in production might need one setup, while a test server or a server in a different country might need something slightly different.</p><p lang="hr">Custom modules make that easier. You can build logic into the module to<strong> decide how it should behave</strong> based on things like location, server role, or environment. That way, you don’t have to create completely different configurations for every scenario.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-4816235 elementor-widget elementor-widget-heading" data-id="4816235" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Helping your team work better together
</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-1afc2c1 elementor-widget elementor-widget-text-editor" data-id="1afc2c1" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">When teams manage systems manually or use different scripts, things can get messy fast. One person might do something slightly different from another, which can lead to confusion or broken systems.</p><p lang="hr">Using shared custom modules helps everyone follow the same process. Teams can use the same building blocks, so configurations are more consistent and easier to understand. You can also <strong>store these modules in a version control system</strong> like Git, which keeps track of changes and helps teams collaborate.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-6ee4395 elementor-widget elementor-widget-heading" data-id="6ee4395" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Fitting into DevOps and automated workflows
</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-77a5845 elementor-widget elementor-widget-text-editor" data-id="77a5845" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>If you&#8217;re using DevOps tools or working with CI/CD (Continuous Integration/Continuous Deployment), automation is crucial. Custom DSC modules are great for this because they work well in pipelines.</p><p>You can include them in your deployment process to make sure systems are set up the right way every time. You can also<strong> test them before rolling them out</strong>, which helps catch mistakes early. This kind of repeatable automation is a big step toward treating your infrastructure like code.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-dd34c1f elementor-widget elementor-widget-heading" data-id="dd34c1f" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Making it easier to find and fix issues
</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-90a49cc elementor-widget elementor-widget-text-editor" data-id="90a49cc" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">Troubleshooting big configuration scripts can be frustrating. If something breaks, it’s hard to figure out where the problem is.</p><p lang="hr">With custom modules, <strong>it’s easier to narrow things down</strong>. You can add custom logging to show what’s happening inside the module. If something goes wrong, you’ll have a better idea of what failed and why, without digging through a huge script line by line.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-432f902 elementor-widget elementor-widget-heading" data-id="432f902" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Growing with your infrastructure over time
</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-c25aca4 elementor-widget elementor-widget-text-editor" data-id="c25aca4" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">When you&#8217;re just managing a few machines, you might not feel the need for custom modules. But as your environment grows, things can quickly become unmanageable.</p><p lang="hr">Custom DSC modules help you scale more easily. You’re building your setup in a way that can grow with your team, your servers, and your company. Instead of starting from scratch every time, <strong>you’re reusing tested, reliable tools you’ve already built</strong>.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-9e6806f elementor-widget elementor-widget-heading" data-id="9e6806f" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Getting started with your first custom module
</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-a7e5aa3 elementor-widget elementor-widget-text-editor" data-id="a7e5aa3" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">If you’re new to this, don’t worry, you don’t have to build something complicated right away. <strong>Start with a small task</strong>, like creating a module to make sure a file exists or a setting is applied. You can use PowerShell tools like New-DscResource to help you get started.</p><p lang="hr">Keep your code simple and readable. As you get more comfortable, you can add more features, use parameters, and handle more advanced logic.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-ebec354 elementor-widget elementor-widget-text-editor" data-id="ebec354" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p style="text-align: center;"><strong>How to create a PowerShell DSC module:</strong></p>								</div>
				</div>
				<div class="elementor-element elementor-element-f805c0b elementor-widget__width-initial elementor-widget elementor-widget-video" data-id="f805c0b" data-element_type="widget" data-e-type="widget" data-settings="{&quot;youtube_url&quot;:&quot;https:\/\/www.youtube.com\/watch?v=AcyRcLJrS8A&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}" data-widget_type="video.default">
				<div class="elementor-widget-container">
							<div class="elementor-wrapper elementor-open-inline">
			<div class="elementor-video"></div>		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-fdfdbc9 elementor-widget elementor-widget-text-editor" data-id="fdfdbc9" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p style="text-align: center;"><em>This video may not load due to your cookie preferences. Adjust your cookie settings or <a href="https://www.youtube.com/watch?v=AcyRcLJrS8A" target="_blank" rel="noopener">watch it directly on YouTube</a>.</em></p>								</div>
				</div>
				<div class="elementor-element elementor-element-169bd91 elementor-widget elementor-widget-heading" data-id="169bd91" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Why custom modules are worth it
</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-e0a9a44 elementor-widget elementor-widget-text-editor" data-id="e0a9a44" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p lang="hr">Custom DSC modules help you go beyond the basics. They let you solve real-world problems, make your code cleaner, and manage systems more reliably. Whether you&#8217;re working alone or with a team, they make your setup more consistent, more scalable, and easier to troubleshoot.</p><p lang="hr">For beginners, they might seem like extra work at first but they actually save you time in the long run.</p><p><span lang="en-US">You can take your custom DSC modules even further by<a href="https://dev.xoap.io/" target="_blank" rel="noopener"> integrating them with </a></span><a href="_wp_link_placeholder"><span lang="hr">XOAP</span></a><span lang="en-US">, which helps you<strong> manage, version, and deploy your configurations</strong> at scale with ease. XOAP makes it simple to organize and apply your DSC logic across environments through a user-friendly platform built for automation.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-5b2e0ff elementor-widget elementor-widget-text-editor" data-id="5b2e0ff" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<blockquote>
<p><strong>You may also be interested in:<br /></strong><a href="https://dev.xoap.io/tutorial-how-to-troubleshoot-dsc-compliance/" target="_blank" rel="noopener">→ Tutorial: How to troubleshoot DSC compliance?</a><br /><a href="https://dev.xoap.io/convert-group-policy-into-dsc-with-baselinemanagement-module/" target="_blank" rel="noopener">→ Convert Group Policy into DSC</a><br /><a href="https://dev.xoap.io/how-to-use-layered-dsc-configurations/" target="_blank" rel="noopener">→ A modular approach to dynamic DSC configurations</a><br /><a href="https://dev.xoap.io/secure-your-windows-environment-with-xoap-windows-laps-dsc/" target="_blank" rel="noopener">→ Secure your Windows environment with XOAP Windows LAPS DSC</a></p>
</blockquote>
<p> </p>								</div>
				</div>
				<div class="elementor-element elementor-element-e38b769 elementor-widget elementor-widget-spacer" data-id="e38b769" data-element_type="widget" data-e-type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
							<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
						</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-4d386dd e-con-full e-flex e-con e-child" data-id="4d386dd" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-ba9e329 e-con-full e-flex e-con e-child" data-id="ba9e329" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;gradient&quot;,&quot;jet_parallax_layout_list&quot;:[]}">
		<div class="elementor-element elementor-element-8a4b2cf e-con-full e-flex e-con e-child" data-id="8a4b2cf" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-329cfa0 elementor-widget__width-inherit elementor-widget elementor-widget-heading" data-id="329cfa0" data-element_type="widget" data-e-type="widget" data-settings="{&quot;_animation&quot;:&quot;none&quot;,&quot;_animation_tablet&quot;:&quot;fadeInDown&quot;}" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default"><a href="https://auth.dev.xoap.io/auth/realms/my.dev.xoap.io/protocol/openid-connect/registrations?client_id=portal&#038;response_type=code&#038;scope=openid%20email&#038;redirect_uri=https://my.dev.xoap.io&#038;kc_locale=en&#038;_ga=2.120291981.440170699.1710334465-1088457358.1705491014" target="_blank">Apply DSC logic across environments</a></h2>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-6519c7b e-con-full e-flex e-con e-child" data-id="6519c7b" data-element_type="container" data-e-type="container" data-settings="{&quot;jet_parallax_layout_list&quot;:[]}">
				<div class="elementor-element elementor-element-030b06a elementor-mobile-align-justify elementor-widget-mobile__width-inherit elementor-widget elementor-widget-global elementor-global-18898 elementor-widget-button" data-id="030b06a" data-element_type="widget" data-e-type="widget" data-settings="{&quot;_animation_mobile&quot;:&quot;none&quot;}" title="Get lifetime access" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://auth.dev.xoap.io/auth/realms/my.dev.xoap.io/protocol/openid-connect/registrations?client_id=portal&#038;response_type=code&#038;scope=openid%20email&#038;redirect_uri=https://my.dev.xoap.io&#038;kc_locale=en" target="_blank" title="Start for free">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Start for free</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				<div class="elementor-element elementor-element-9144c9e elementor-mobile-align-justify elementor-widget-mobile__width-inherit elementor-widget elementor-widget-global elementor-global-18905 elementor-widget-button" data-id="9144c9e" data-element_type="widget" data-e-type="widget" title="Get lifetime access" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://calendly.com/xoap/30min" target="_blank" title="Book a demo">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Book a demo</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				</div>
				</div>
				</div>
				</div>
		<p>The post <a href="https://dev.xoap.io/why-use-custom-dsc-modules/">Why use custom DSC modules?</a> appeared first on <a href="https://dev.xoap.io">XOAP</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
