I have set a coupe of variables in octopus then want to use them in my inline powershell script on a process.
But it is ran by a tentacle on the deployment machine. This doesn’t seem to be able use the variables. Is there any way to use them in this context? I want to be able to use it for API keys and such
Thank you for reaching out to us with your query about variables.
You should be able to use variables in your inline script. It’d be great if we can check that the syntax is as expected and that the variables are scoped correctly. Could you please provide a code snippet and, if possible, a screenshot showing the variable configuration in Octopus Deploy? It’d also be really useful if you could confirm what currently happens (e.g. are the variables just ignored, is there an error message and so on).
It might be worth trying the $OctopusParameters["freshApiKey"] format for the moment, just to keep things simple. It’d also be good to check that the deployment you are running matches one or more of the scopes you have set for the variable (for example, check that you are deploying to “Development”).
If the above doesn’t help would you be able to confirm what happens when you try and use the variable? For example, do you see an error message in the task log?
Hi Charles. Thank you. I have tried that format as well when I was just trying to work it out.
if I try to just echo out the var it just echos a blank space in the task log. There’s no error. The tentacle i’m using is a Listening tentacle if that helps.
Thank you for getting back to me with this update.
One of the most common issues with variables is a scope mismatch. Would you be able to create a new variable, with no scope set, and try to access it in the script? I’m hopeful that the variable will work, but if it doesn’t it will at least help us to narrow down where the potential issue is.
That’s great to hear, I’m really pleased it’s working for you now.
Scopes can be tricky to narrow down so it’s likely there was a mismatch between the variable scope and the deployment target, environment, tag or so on that you were using. If you want to try adding the scopes back I’d suggest trying the broadest first (e.g. environment) and then gradually adding more restrictive scopes each time until you’ve honed in to where you want to be.
Please get back in touch with us if you have any questions.
It looks like you are pushing the Octopus variable into the PowerShell $apiKey variable successfully, which would suggest that whatever is going wrong is happening in the script rather than as a result of something Octopus is doing. I’d be happy to try and advise further - can you post the whole script please?