Thank you so much for doing a video on this and referencing the open source model. I just deployed this at work & plan to contribute & support them. This Ansible webUI is such a game changer!!! Great video & would love to see some cool Ansible or OpenTofu refresh videos. ✌🏻from Chicago.
Looks like the updated the arguments section of a new task template. It use to be json format. Do you know how to use the new Args section? is it key=value? or key:value? need ""? not clear here. Also how are Survey variables used?
Great video. It seems you are basically running the Terraform workflow commands (plan, apply) but using Semaphore UI based on changes triggered by git commits. This is so similar to doing a CICD or GitOps pipeline in GitLab or GitHub or Jenkins. Also very similar is the practice of storing state in a remote backend. I'm wondering what advantage Semaphore offers for Terraform workflow over the standard CICD workflow/pipeline tools?. .At least in traditional tools you can create a step to save the output of the plan phase and feed it in the apply command so that it won't do a user prompt before applying. Looks like Semaphore UI is just a task runner with a GUI. The downside of GUI here (vs CICD pipelines) is not IaC, but CICD is IAC. (Eg: Gitlab CI yml can be stored in the same repo as the rest of your Terraform repo and doesn't require fiddling with an interactive GUI).
Hello, We have deployed semaphore as a docker container and it works as usual. But when we put it behind a nginx reverse proxy with location based routing (e.g. /semaphore), it seize to work. I requested for help in semaphore community discussion forum but didn't get any assistance yet. It will be really a great help to address the issue as I can't afford to have nginx web_root dedicated for semaphore as there are some other web based standalone or docker based containers are running on the same host behind same reverse proxy (e.g. grafana & portainer).
For the state issue id just use seaweedfs or minio as a backend. Both just act in place of S3. Also worth noting something like atlantis layered in here would be nice as well. Although im not a huge fan of atlantis too much config per repo.
Maybe I’m answering your question. I have recently discovered Semaphore which I use with Ansible. My Nagios Event Handlers I have not figured out how to input insert Survey Variables into my API call so I have been using limit in the API call instead. Inside the Semaphore UI I prompt the runner for shadow vars that I plug into delegate_to in the playbook. You can put an inventory group name there
Nice video, this was something I wanted to see for a long time. Yet I wonder what is the benefit of using Semphore if we already have Kestra / Rundeck. I do think I still prefer Rundeck (or Kestra) over this, because Rundeck offer interface for filling the input (custom form) with predefined output.
I think also Semaphore have some form of inputs before the template is executed. they call it "Survey Variables". and before execution it will ask you for an input via web UI form. But you are not able to pre-fill these variables, you can add description next to the input.
Looks nice and useful to run some stuff. But why not use a Gitlab integration with gitlab-runner and the pipelines, should be integrated much better. Gitlab can also handle Terraform states for you.
If you already have self-hosted GitLab instance, you might use it as remote HTTP backed for Terraform :p This reduces the extra remote dependency on Hashicorp cloud.
I have tried to pass command line arguments to bash or python script. I could not get it to work. the command arguments (in bash $@), it always blank. Have you ever tried?
Does it support preprocessing Terraform? For example, something that HCL doesn't support required me to generate Terraform code first. Will it be able to handle that? I think it can be done with bash or Ansible and just nest Terraform inside but I assume there are niceties in having the built-in Terraform handle it. Also, side note. I don't get Kubernetes manifests inside Terraform. It seems unnecessary.
I really like where the Semaphore UI concept is going. Thank you for the video!
Me too! Thank you 😊
Thank you :)
Hi Christian, thnx for this video, awesome as usual! But I do am curious what your opinion is on Semaphore vs Kestra?
IMO these two products arent really in the same category to even compare.
What is the difference, just looked it up and seems similar but separate.
Thank you so much for doing a video on this and referencing the open source model. I just deployed this at work & plan to contribute & support them. This Ansible webUI is such a game changer!!! Great video & would love to see some cool Ansible or OpenTofu refresh videos. ✌🏻from Chicago.
Looks like the updated the arguments section of a new task template. It use to be json format. Do you know how to use the new Args section? is it key=value? or key:value? need ""? not clear here. Also how are Survey variables used?
Great video. It seems you are basically running the Terraform workflow commands (plan, apply) but using Semaphore UI based on changes triggered by git commits. This is so similar to doing a CICD or GitOps pipeline in GitLab or GitHub or Jenkins. Also very similar is the practice of storing state in a remote backend. I'm wondering what advantage Semaphore offers for Terraform workflow over the standard CICD workflow/pipeline tools?. .At least in traditional tools you can create a step to save the output of the plan phase and feed it in the apply command so that it won't do a user prompt before applying. Looks like Semaphore UI is just a task runner with a GUI. The downside of GUI here (vs CICD pipelines) is not IaC, but CICD is IAC. (Eg: Gitlab CI yml can be stored in the same repo as the rest of your Terraform repo and doesn't require fiddling with an interactive GUI).
Thanks! Actually yes it’s just a UI for those tools, but it also provides scheduling, logs, teams, etc
I'm curious how you setup passwordless authentication on authentik.
Unable to bring up the UI.
I tried different versions of the package, and changed the database too. Still no luck. Any suggestions ??
Hello,
We have deployed semaphore as a docker container and it works as usual. But when we put it behind a nginx reverse proxy with location based routing (e.g. /semaphore), it seize to work. I requested for help in semaphore community discussion forum but didn't get any assistance yet. It will be really a great help to address the issue as I can't afford to have nginx web_root dedicated for semaphore as there are some other web based standalone or docker based containers are running on the same host behind same reverse proxy (e.g. grafana & portainer).
Hi Christian!
Kannst Du uns vielleicht zeigen, wie man Authentik in Semaphore nutzen kann?
For the state issue id just use seaweedfs or minio as a backend. Both just act in place of S3. Also worth noting something like atlantis layered in here would be nice as well. Although im not a huge fan of atlantis too much config per repo.
Also for your secretes management I use infisical
How do you do the bash script function?
Did not find any video yet how to address groups in inventory . What if a task shall only apply to specific servers e.g. in inventory group?
Maybe I’m answering your question. I have recently discovered Semaphore which I use with Ansible. My Nagios Event Handlers I have not figured out how to input insert Survey Variables into my API call so I have been using limit in the API call instead.
Inside the Semaphore UI I prompt the runner for shadow vars that I plug into delegate_to in the playbook. You can put an inventory group name there
For secrets and semaphore I'm using environment variables which support secrets
Nice video, this was something I wanted to see for a long time. Yet I wonder what is the benefit of using Semphore if we already have Kestra / Rundeck. I do think I still prefer Rundeck (or Kestra) over this, because Rundeck offer interface for filling the input (custom form) with predefined output.
I think also Semaphore have some form of inputs before the template is executed. they call it "Survey Variables". and before execution it will ask you for an input via web UI form. But you are not able to pre-fill these variables, you can add description next to the input.
Thank you for directing me to Redneck.
Looks nice and useful to run some stuff. But why not use a Gitlab integration with gitlab-runner and the pipelines, should be integrated much better. Gitlab can also handle Terraform states for you.
That's a good idea, but it's great to have some additional options :)
auto-approve option is there as a check-box while running the terraform but it is still asking for the approval/confirmation
Hope that’s gonna get fixed soon
While i am still wondering where the untrusted certificate comes from (at 15:00 when you deploy port 80 and address port 443).
That's from my IngressController (using untrusted certs as default)
If you already have self-hosted GitLab instance, you might use it as remote HTTP backed for Terraform :p
This reduces the extra remote dependency on Hashicorp cloud.
That's a good idea :) I'll check it out!
I see you are putting it all together.
we cannot select inventory for bash ?
I have tried to pass command line arguments to bash or python script. I could not get it to work. the command arguments (in bash $@), it always blank. Have you ever tried?
Maybe check if there are any known issues, from my side it works
It seems that you have tested 2 products doing the same job; Kestra and Semaphore. Which one did actually end up using?
I'm currently using Kestra because it seems to be more flexible. Maybe it's worth a "versus" video at some point :D
@@christianlempa Thanks for answering. Kestra seem to cost a lot though. Is there something you miss in the free vs paid version?
been waiting for this video for ages
Can you please make vedio on Semaphore webhook for bitbucket because bitbucket is not supporting custom headers option, Thanks
You can use Semaphore's Integrations.
@@semaphoreui if possible please make vedio for bitbucket platform
Loving the Semaphore UI series. Can you make a video example about provisioning and setup of an AWS or other web service VM using SemaphoreUI?
I haven’t tried out AWS myself so probably that’s gonna be to hard right now I’m sorry
@@christianlempa thanks for the rep!
@@christianlempa Have you tried Semaphore UI cloud version?
Thanks !!! :)
Does it support preprocessing Terraform? For example, something that HCL doesn't support required me to generate Terraform code first. Will it be able to handle that? I think it can be done with bash or Ansible and just nest Terraform inside but I assume there are niceties in having the built-in Terraform handle it.
Also, side note. I don't get Kubernetes manifests inside Terraform. It seems unnecessary.
so it is really a problem of semaphore ui - it not provides any backend for storing the states or job artifacts
Im pretty sure that’s what I said in the video 🤔
Thank you for your feedback. We are working on it.