{"id":347,"date":"2017-11-08T13:11:41","date_gmt":"2017-11-08T13:11:41","guid":{"rendered":"http:\/\/www.ciraltos.com\/?p=347"},"modified":"2023-03-24T00:40:45","modified_gmt":"2023-03-24T05:40:45","slug":"powershell-desired-state-configuration-troubles","status":"publish","type":"post","link":"https:\/\/www.ciraltos.com\/staging2\/powershell-desired-state-configuration-troubles\/","title":{"rendered":"PowerShell Desired State Configuration Troubles"},"content":{"rendered":"<p><img decoding=\"async\" loading=\"lazy\" class=\"alignleft wp-image-359 size-medium\" src=\"\/wp-content\/uploads\/2017\/11\/PowerShellDSC-300x158.png\" alt=\"AzureAutomation\" width=\"300\" height=\"158\" srcset=\"https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2017\/11\/PowerShellDSC-300x158.png 300w, https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2017\/11\/PowerShellDSC.png 600w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/>I am excited for the potential of PowerShell Desired State Configuration.&nbsp; The ideal of pushing configurations with one click, making settings consistent across multiple machines is a sysadmins utopia.&nbsp; But getting there can be a challenge and somewhat of a steep learning curve.<\/p>\n<p>This week\u2019s obstacle was with the PowerShell DSC script resource.&nbsp; There is a lot of information available.&nbsp; This <a href=\"https:\/\/docs.microsoft.com\/en-us\/powershell\/dsc\/scriptresource\">Microsoft document<\/a> is a good place to start.<!--more--><\/p>\n<p>A little background before we go any further.&nbsp; I deploy servers using Azure Resource Manager Templates.&nbsp; These templates will create a server with any number of data drives, depending on what is available for the server size.&nbsp; I want to use DSC to pool all available data drives using Storage Spaces and create a usable disk drive from the pool after the deployment.&nbsp; The first step in the script was to create the storage pool.&nbsp; The Script Block I used to create the pool looked like this:<\/p>\n<pre>Script StoragePool {\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetScript = {\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;New-StoragePool -FriendlyName StoragePool1 -StorageSubSystemFriendlyName '*storage*' -PhysicalDisks (Get-PhysicalDisk \u2013CanPool $True)\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TestScript = {\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Get-StoragePool -FriendlyName StoragePool1).OperationalStatus -eq 'OK'\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetScript = {\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@{Ensure = if ((Get-StoragePool -FriendlyName StoragePool1).OperationalStatus -eq 'OK') {'Present'} Else {'Absent'}}\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;}<\/pre>\n<blockquote><p>Completed DSC Storage Spaces configuration post <a href=\"http:\/\/www.ciraltos.com\/storage-spaces-dsc\/\">here<\/a><\/p><\/blockquote>\n<p>&nbsp;<\/p>\n<p>This script block has the three required sections, the TestScript that tests and returns a $true of $false, depending on if the setting exists.&nbsp; The SetScript sets the configuration if the TestScript returns $false, and the GetScript that returns the required Array.&nbsp; However, the DSC deployment kept giving me the errors below when it ran.<\/p>\n<p>From the Portal:<\/p>\n<pre>The PowerShell DSC resource '[Script]StoragePool' with SourceInfo '::36::13::Script' threw one or more non-terminating errors while running the Test-TargetResource functionality. \nThese errors are logged to the ETW channel called Microsoft-Windows-DSC\/Operational. Refer to this channel for more details.<\/pre>\n<p>From the Desired State Configuration Operation log:<\/p>\n<p>Event ID: 4252<\/p>\n<pre>MIResult: 1\nError Message: No MSFT_StoragePool objects found with property 'FriendlyName' equal to 'StoragePool1'.&nbsp; Verify the value of the property and retry.\nMessage ID: CmdletizationQuery_NotFound_FriendlyName,Get-StoragePool\nError Category: 13\nError Code: 13\nError Type: MI<\/pre>\n<p>Event ID: 4097<\/p>\n<pre>This event indicates that failure happens when LCM is processing the configuration. \nError Id is 0x1. Error Detail is The SendConfigurationApply function did not succeed.. \nResource Id is [Script]StoragePool and Source Info is ::36::13::Script. \nError Message is The PowerShell DSC resource '[Script]StoragePool' with SourceInfo '::36::13::Script' \nthrew one or more non-terminating errors while running the Test-TargetResource functionality. \nThese errors are logged to the ETW channel called Microsoft-Windows-DSC\/Operational. Refer to this channel for more details..<\/pre>\n<p>Event ID: 4103<\/p>\n<pre>This event indicates that a non-terminating error was thrown when DSCEngine was executing \nTest-TargetResource on MSFT_ScriptResource DSC resource. FullyQualifiedErrorId is \nCmdletizationQuery_NotFound_FriendlyName,Get-StoragePool. Error Message is No MSFT_StoragePool objects \nfound with property 'FriendlyName' equal to 'StoragePool1'.&nbsp; Verify the value of the property and retry..<\/pre>\n<p>Initially, I thought this was an issue with the SetScript command setting up the storage pool.&nbsp; But looking at Event ID 4252, the Message ID indicates an issue with the Get-StoragePool command.&nbsp; This is the command the TestScript section runs, not the SetScript.&nbsp; So next, I ran the business part of the TestScirpt command using PowerShell on the test server to see what happens.<\/p>\n<p>First, with the storage pool in place, the command returns True as I would expect<\/p>\n<p><a href=\"\/wp-content\/uploads\/2017\/11\/DSCErrors_1.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-348 size-full\" src=\"\/wp-content\/uploads\/2017\/11\/DSCErrors_1.png\" alt=\"DSC Error\" width=\"742\" height=\"68\" srcset=\"https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2017\/11\/DSCErrors_1.png 742w, https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2017\/11\/DSCErrors_1-300x27.png 300w\" sizes=\"(max-width: 742px) 100vw, 742px\" \/><\/a><\/p>\n<p>Okay, that works as expected.&nbsp; Now what happens if there is no storage pool<\/p>\n<p><a href=\"\/wp-content\/uploads\/2017\/11\/DSCErrors_2.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-349 size-full\" src=\"\/wp-content\/uploads\/2017\/11\/DSCErrors_2.png\" alt=\"DSC Error\" width=\"1163\" height=\"169\" srcset=\"https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2017\/11\/DSCErrors_2.png 1163w, https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2017\/11\/DSCErrors_2-300x44.png 300w, https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2017\/11\/DSCErrors_2-768x112.png 768w, https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2017\/11\/DSCErrors_2-1024x149.png 1024w\" sizes=\"(max-width: 1163px) 100vw, 1163px\" \/><\/a><\/p>\n<p>As you can see, it returns False but it also gives an error because there is no pool to check.&nbsp; Turns out that this error was causing the issue.&nbsp; The simple fix was to tell PowerShell to silently continue on error.&nbsp; Now the command just returns $false without the added error.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2017\/11\/DSCErrors_3.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-350 size-full\" src=\"\/wp-content\/uploads\/2017\/11\/DSCErrors_3.png\" alt=\"DSC Error\" width=\"960\" height=\"77\" srcset=\"https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2017\/11\/DSCErrors_3.png 960w, https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2017\/11\/DSCErrors_3-300x24.png 300w, https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2017\/11\/DSCErrors_3-768x62.png 768w\" sizes=\"(max-width: 960px) 100vw, 960px\" \/><\/a><\/p>\n<p>The updated script block below removes the errors and now functions as intended.&nbsp; Now back to finishing the configuration.<\/p>\n<pre>Script StoragePool {\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetScript = {\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;New-StoragePool -FriendlyName StoragePool1 -StorageSubSystemFriendlyName '*storage*' -PhysicalDisks (Get-PhysicalDisk \u2013CanPool $True)\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TestScript = {\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Get-StoragePool -ErrorAction SilentlyContinue -FriendlyName StoragePool1).OperationalStatus -eq 'OK'\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp; GetScript = {\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @{Ensure = if ((Get-StoragePool -FriendlyName StoragePool1).OperationalStatus -eq 'OK') {'Present'} Else {'Absent'}}\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>I am excited for the potential of PowerShell Desired State Configuration.&nbsp; The ideal of pushing configurations with one click, making settings consistent across multiple machines is a sysadmins utopia.&nbsp; But getting there can be a challenge and somewhat of a steep learning curve. This week\u2019s obstacle was with the PowerShell DSC script resource.&nbsp; There is &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/www.ciraltos.com\/staging2\/powershell-desired-state-configuration-troubles\/\"> <span class=\"screen-reader-text\">PowerShell Desired State Configuration Troubles<\/span> Read More &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":3740,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"default","ast-global-header-display":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":""},"categories":[170],"tags":[9,126,125,164,169,165,166,167,168],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>PowerShell Desired State Configuration Troubles - ciraltos<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.ciraltos.com\/staging2\/powershell-desired-state-configuration-troubles\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PowerShell Desired State Configuration Troubles - ciraltos\" \/>\n<meta property=\"og:description\" content=\"I am excited for the potential of PowerShell Desired State Configuration.&nbsp; The ideal of pushing configurations with one click, making settings consistent across multiple machines is a sysadmins utopia.&nbsp; But getting there can be a challenge and somewhat of a steep learning curve. This week\u2019s obstacle was with the PowerShell DSC script resource.&nbsp; There is &hellip; PowerShell Desired State Configuration Troubles Read More &raquo;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.ciraltos.com\/staging2\/powershell-desired-state-configuration-troubles\/\" \/>\n<meta property=\"og:site_name\" content=\"ciraltos\" \/>\n<meta property=\"article:published_time\" content=\"2017-11-08T13:11:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-03-24T05:40:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2022\/10\/PowerShellDSC.png\" \/>\n\t<meta property=\"og:image:width\" content=\"600\" \/>\n\t<meta property=\"og:image:height\" content=\"315\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Travis Roberts\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ciraltos\" \/>\n<meta name=\"twitter:site\" content=\"@ciraltos\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Travis Roberts\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.ciraltos.com\/staging2\/powershell-desired-state-configuration-troubles\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.ciraltos.com\/staging2\/powershell-desired-state-configuration-troubles\/\"},\"author\":{\"name\":\"Travis Roberts\",\"@id\":\"http:\/\/www.ciraltos.com\/staging2\/#\/schema\/person\/25391996d6cddfecd4d257162b7e373a\"},\"headline\":\"PowerShell Desired State Configuration Troubles\",\"datePublished\":\"2017-11-08T13:11:41+00:00\",\"dateModified\":\"2023-03-24T05:40:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.ciraltos.com\/staging2\/powershell-desired-state-configuration-troubles\/\"},\"wordCount\":422,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/www.ciraltos.com\/staging2\/#\/schema\/person\/25391996d6cddfecd4d257162b7e373a\"},\"keywords\":[\"Azure\",\"desired state configuration\",\"dsc\",\"Get-StoragePool\",\"GetScript\",\"New-StoragePool\",\"Scirpt\",\"SetScript\",\"TestScript\"],\"articleSection\":[\"PowerShell\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.ciraltos.com\/staging2\/powershell-desired-state-configuration-troubles\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.ciraltos.com\/staging2\/powershell-desired-state-configuration-troubles\/\",\"url\":\"https:\/\/www.ciraltos.com\/staging2\/powershell-desired-state-configuration-troubles\/\",\"name\":\"PowerShell Desired State Configuration Troubles - ciraltos\",\"isPartOf\":{\"@id\":\"http:\/\/www.ciraltos.com\/staging2\/#website\"},\"datePublished\":\"2017-11-08T13:11:41+00:00\",\"dateModified\":\"2023-03-24T05:40:45+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.ciraltos.com\/staging2\/powershell-desired-state-configuration-troubles\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.ciraltos.com\/staging2\/powershell-desired-state-configuration-troubles\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.ciraltos.com\/staging2\/powershell-desired-state-configuration-troubles\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/www.ciraltos.com\/staging2\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PowerShell Desired State Configuration Troubles\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/www.ciraltos.com\/staging2\/#website\",\"url\":\"http:\/\/www.ciraltos.com\/staging2\/\",\"name\":\"ciraltos\",\"description\":\"cloud, technology and trends\",\"publisher\":{\"@id\":\"http:\/\/www.ciraltos.com\/staging2\/#\/schema\/person\/25391996d6cddfecd4d257162b7e373a\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/www.ciraltos.com\/staging2\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"http:\/\/www.ciraltos.com\/staging2\/#\/schema\/person\/25391996d6cddfecd4d257162b7e373a\",\"name\":\"Travis Roberts\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/www.ciraltos.com\/staging2\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2023\/03\/Logo-1.png\",\"contentUrl\":\"https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2023\/03\/Logo-1.png\",\"width\":5657,\"height\":3563,\"caption\":\"Travis Roberts\"},\"logo\":{\"@id\":\"http:\/\/www.ciraltos.com\/staging2\/#\/schema\/person\/image\/\"},\"sameAs\":[\"http:\/\/www.ciraltos.com\",\"https:\/\/twitter.com\/ciraltos\"],\"url\":\"https:\/\/www.ciraltos.com\/staging2\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"PowerShell Desired State Configuration Troubles - ciraltos","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.ciraltos.com\/staging2\/powershell-desired-state-configuration-troubles\/","og_locale":"en_US","og_type":"article","og_title":"PowerShell Desired State Configuration Troubles - ciraltos","og_description":"I am excited for the potential of PowerShell Desired State Configuration.&nbsp; The ideal of pushing configurations with one click, making settings consistent across multiple machines is a sysadmins utopia.&nbsp; But getting there can be a challenge and somewhat of a steep learning curve. This week\u2019s obstacle was with the PowerShell DSC script resource.&nbsp; There is &hellip; PowerShell Desired State Configuration Troubles Read More &raquo;","og_url":"https:\/\/www.ciraltos.com\/staging2\/powershell-desired-state-configuration-troubles\/","og_site_name":"ciraltos","article_published_time":"2017-11-08T13:11:41+00:00","article_modified_time":"2023-03-24T05:40:45+00:00","og_image":[{"width":600,"height":315,"url":"https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2022\/10\/PowerShellDSC.png","type":"image\/png"}],"author":"Travis Roberts","twitter_card":"summary_large_image","twitter_creator":"@ciraltos","twitter_site":"@ciraltos","twitter_misc":{"Written by":"Travis Roberts","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.ciraltos.com\/staging2\/powershell-desired-state-configuration-troubles\/#article","isPartOf":{"@id":"https:\/\/www.ciraltos.com\/staging2\/powershell-desired-state-configuration-troubles\/"},"author":{"name":"Travis Roberts","@id":"http:\/\/www.ciraltos.com\/staging2\/#\/schema\/person\/25391996d6cddfecd4d257162b7e373a"},"headline":"PowerShell Desired State Configuration Troubles","datePublished":"2017-11-08T13:11:41+00:00","dateModified":"2023-03-24T05:40:45+00:00","mainEntityOfPage":{"@id":"https:\/\/www.ciraltos.com\/staging2\/powershell-desired-state-configuration-troubles\/"},"wordCount":422,"commentCount":0,"publisher":{"@id":"http:\/\/www.ciraltos.com\/staging2\/#\/schema\/person\/25391996d6cddfecd4d257162b7e373a"},"keywords":["Azure","desired state configuration","dsc","Get-StoragePool","GetScript","New-StoragePool","Scirpt","SetScript","TestScript"],"articleSection":["PowerShell"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.ciraltos.com\/staging2\/powershell-desired-state-configuration-troubles\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.ciraltos.com\/staging2\/powershell-desired-state-configuration-troubles\/","url":"https:\/\/www.ciraltos.com\/staging2\/powershell-desired-state-configuration-troubles\/","name":"PowerShell Desired State Configuration Troubles - ciraltos","isPartOf":{"@id":"http:\/\/www.ciraltos.com\/staging2\/#website"},"datePublished":"2017-11-08T13:11:41+00:00","dateModified":"2023-03-24T05:40:45+00:00","breadcrumb":{"@id":"https:\/\/www.ciraltos.com\/staging2\/powershell-desired-state-configuration-troubles\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.ciraltos.com\/staging2\/powershell-desired-state-configuration-troubles\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.ciraltos.com\/staging2\/powershell-desired-state-configuration-troubles\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/www.ciraltos.com\/staging2\/"},{"@type":"ListItem","position":2,"name":"PowerShell Desired State Configuration Troubles"}]},{"@type":"WebSite","@id":"http:\/\/www.ciraltos.com\/staging2\/#website","url":"http:\/\/www.ciraltos.com\/staging2\/","name":"ciraltos","description":"cloud, technology and trends","publisher":{"@id":"http:\/\/www.ciraltos.com\/staging2\/#\/schema\/person\/25391996d6cddfecd4d257162b7e373a"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/www.ciraltos.com\/staging2\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"http:\/\/www.ciraltos.com\/staging2\/#\/schema\/person\/25391996d6cddfecd4d257162b7e373a","name":"Travis Roberts","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/www.ciraltos.com\/staging2\/#\/schema\/person\/image\/","url":"https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2023\/03\/Logo-1.png","contentUrl":"https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2023\/03\/Logo-1.png","width":5657,"height":3563,"caption":"Travis Roberts"},"logo":{"@id":"http:\/\/www.ciraltos.com\/staging2\/#\/schema\/person\/image\/"},"sameAs":["http:\/\/www.ciraltos.com","https:\/\/twitter.com\/ciraltos"],"url":"https:\/\/www.ciraltos.com\/staging2\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.ciraltos.com\/staging2\/wp-json\/wp\/v2\/posts\/347"}],"collection":[{"href":"https:\/\/www.ciraltos.com\/staging2\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ciraltos.com\/staging2\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ciraltos.com\/staging2\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ciraltos.com\/staging2\/wp-json\/wp\/v2\/comments?post=347"}],"version-history":[{"count":12,"href":"https:\/\/www.ciraltos.com\/staging2\/wp-json\/wp\/v2\/posts\/347\/revisions"}],"predecessor-version":[{"id":4105,"href":"https:\/\/www.ciraltos.com\/staging2\/wp-json\/wp\/v2\/posts\/347\/revisions\/4105"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ciraltos.com\/staging2\/wp-json\/wp\/v2\/media\/3740"}],"wp:attachment":[{"href":"https:\/\/www.ciraltos.com\/staging2\/wp-json\/wp\/v2\/media?parent=347"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ciraltos.com\/staging2\/wp-json\/wp\/v2\/categories?post=347"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ciraltos.com\/staging2\/wp-json\/wp\/v2\/tags?post=347"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}