Hi, yes this works: Thanks! this was just what I was looking for.
I made some updates and added command output to a variable which was very helpful. I'll add the rest in later: *$InstanceType = $(Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/instance-type)* @{ cloud = 'AWS' *Instance_type = $InstanceType* AVAIL_ZONE = 'eu-west-3a' REGION = 'eu-west-3' environment = 'DIT' Support_Team = 'Win_Team' Callout = '6-8' my_custom_fact = 'value' } Which gave this output in setup: "ansible_local": { "AVAIL_ZONE": "eu-west-3a", "Callout": "6-8", "REGION": "eu-west-3", "Support_Team": "Win_Team", "cloud": "t2.micro", "environment": "DIT", "my_custom_fact": "value" }, One last question, is it possible to make it look like this like it does on Linux (adding the filename and the [title] block)?: "ansible_local": { * "local": {* * "local_facts": {* "ami_id": "ami-0701e7be9b2a77600", "avail_zone": "eu-west-1b", "region": "eu-west-1", "callout": "24-7", "environment": "Production", "instance_type": "t2.micro", "support_team": "Hadoopi_Team", "cloud": "AWS" * }* * }* }, I tried to add in additional lines but it didn't like it and I'm pretty sure it's a simple fix. Thanks again. On Thursday, 17 September 2020 at 21:23:15 UTC+1 [email protected] wrote: > A further FYI, do not include the | ConvertTo-Json part, just output the > hashtable or array directory, the issue has been updated with more > information as to why that is. > > On Thursday, September 17, 2020 at 9:01:23 PM UTC+10 [email protected] > wrote: > >> Just an FYI there may be a bug with fact_path that I've opened >> https://github.com/ansible-collections/ansible.windows/issues/106. I'm >> not sure if this bug can be easily fixed so stay tuned to that. Another >> option if you have custom facts is to create your own fact module. They are >> quite simple to do as well. >> On Thursday, September 17, 2020 at 8:50:48 PM UTC+10 [email protected] >> wrote: >> >>> Just try it out and see for yourself. I have placed the following script >>> at C:\Windows\TEMP\facts\my_facts.ps1 with the contents >>> >>> @{ >>> my_custom_fact = 'value' >>> my_complex_custom_fact = @{ >>> hello = 'world' >>> } >>> } | ConvertTo-Json -Compress >>> >>> This script converts a PowerShell hashtable (like a dictionary) to a >>> JSON and outputs it for the setup module to collect. >>> >>> Then run 'ansible windows -m setup -a fact_path=C:/Windows/TEMP/facts' >>> and look at the output. >>> >>> >>> >>> On Thursday, September 17, 2020 at 4:35:37 PM UTC+10 [email protected] >>> wrote: >>> >>>> Can anyone point me in the direction of how to setup custom/local facts >>>> on Windows please? not just use fact_path... >>>> >>>> Reading the docs I've found so far, it looks like you can't just have a >>>> file with key:value like Linux under the heading [local_facts] for example >>>> (unless you can? but setup doesn't pick up the values when i run ansible >>>> setup against the windows host). The docs/google suggest you need to add >>>> .ps1 scripts to a directory (fact_path DIR) and then get JSON output of >>>> the >>>> facts you want to know about. >>>> >>>> That sounds ok as it's similar to creating a dynamic inventory, but can >>>> anyone share what the output looks like? Better yet, if anyone knows where >>>> a document is that explains this process that would be great. >>>> >>>> Thanks for your help! >>>> >>> -- You received this message because you are subscribed to the Google Groups "Ansible Project" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/440c33d4-aed2-4779-a52a-77a5c5fcbf87n%40googlegroups.com.
