Great video, watching this gives me enough confidence to start using ansible-pull across my infrastructure. A couple of times in the video you allude to some "extra-power" e.g. using pull mode with private repos, setting up a notification on error, but you don't go into further detail. I completely understand you excluding these deeper topics to keep the video streamlined, although it would be extra satisfying if you could provide links to further information on these skipped topics. Thanks for your hard work on these videos, this is the best working overview of pull mode I've seen so far.
I use terraform to create git repositories. It makes it really easy to keep clean repositories. I really like linode, packer, terraform, ansible-pull, and git combination. You can build things out quickly. Great video.
Thank you very much, Jay, for doing such an amazing work and offering it for free! I believe I have learnt some wonderful things that are intended to be shared with the rest of the world, and individuals like you have made that possible! I'm hoping to see more fantastic works like this on your UA-cam channel in the near future.
Thank you for a great content, Jay! Just a quick question, what would you advise to avoid a theoretical overlapping of two provisions? In your case it would possible if one of the updates lasted more than 10 min.
Great stuff ! This is like a reverse way of IaC via Ansible + Gitlab CI where the Gitlab runners take care of the automated provisioning.. It will be great if you can make a video about it..
I'm not sure if I get the "centralize configuration management" thingy here. If you let nodes pull in their Ansible stuff and run it, how do you get a central overview of what's going on then? Then you need to have something easy setup to visualize how these Ansible runs are doing. Otherwise you're flying blind. There are ways to do this, with callback plugins if I recall correctly. But that's not discussed here. So this is not "everything you need to know in order to use ansible-pull". Also, Ansible has to run the full playbook, which is quite resource intensive. Why not use Salt if you want a setup like this? Which runs an agent and keeps an eye out for what is out of sync and just applies what's needed for that.
I have been trying to do this in a little bit of a different way. I'm was able to use the $HOME variable in ansible, but I can't get a $USER variable to work so I don't have to relabel if I have a different account name. Can you shed some insight
Cron solution is a little bit "ugly". I would love to see some webhooks in action for such things. Currently im looking for some simple tool for that. I most familiar with Jenkins but its like shooting a flies with a cannon. Rundeck or Stackstorm look big and bulky as well, not to mention AWX. I could write some python script - requests and jsons are easy there. But im not programmer, i prefer to use others (better written) tools. Maybe you could recommend something lightweight?
This tool needs a second video: How to manage a set of servers, all with a common set of base packages, but each with its own configuration as well, eg Kubernetes control plane or worker nodes, storage and backup, monitoring, messaging, etc.
I have been following your video on ansible and highly appreciate it as I find it useful. I am trying to deploy splunk in a set of hosts using ansible. Instead of the playbooks available in git. Could you make a video on deploying splunk and splunk forwarder by writing an ansible playbook? The playbook to contain wget of splunk url and wget of splunk forwarder url followed by the user name password and the ports and directories to be configured. I find this challenging and appreciate if you could make a video on this.
@@aadhinarayanan761 i dont think this special problem is very helpful to all viewers. you could bootstrap the playbook with ansible-pull, use the ansible modules "uri" or "get_url" (or "shell" if nothing else fit your needs) to obtain data from remote and put that into variables to run your playbook.
@@Lindguardian I think may be I am one who came up to post this here. But that doesn't mean that's a special problem and that is not helpful to others.
Thanks so much again!!! awesome, hope you'll keep on doing videos for Ansible. seems like from one videos to another you are uncovering the secrets of Ansible. :) what can be the issue, when nothing happens after 10 minutes? i'm editing the packages.yml files, then i'm pushing the changes to git, but after 10 minutes nothing happends. i thought the app will be installed, but as i'm watching Crontab logs, after 10 minutes nothing happens, and i've followed every step of this video, and when i triggered the Ansible-pull it ended successfully just like in your screen. what do you think can be the issue?
I know several things have changed in Ansible since this video was produced. But I'm having a problem with the copy sudoers_ansible section. - name: copy sudoers_ansible copy: src: files/sudoers_ansible dest: /etc/sudoers.d/ansible owner: root group: root mode: 0440 I get an error that I can't decypher: TASK [copy sudoers_ansible] *************************************************** fatal: [localhost]: FAILED! => {"changed": false, "checksum": "9c9e5aae4aa1c02a4934d7172d2c4cd6c057d15d", "msg": "Unsupported parameters for (ansible.legacy.copy) module: root Supported parameters include: _original_basename, attributes, backup, checksum, content, dest, directory_mode, follow, force, group, local_follow, mode, owner, remote_src, selevel, serole, setype, seuser, src, unsafe_writes, validate"} As best as I can tell, we are only using 5 parameters, src, dest, owner, group & mode. All of which are identified as being supported. Any ideas?
Using the initial commit, I got the error "ERROR! 'host' is not a valid attribute for a Play". I fixed changing the yml file to: --- - name: Install htop hosts: localhost connection: local become: true tasks: - name: Install htop apt: name: htop
I know this may sound knit picky but I think the title of your video is misleading. To me this is more of using Ansible Pull to manage existing servers. That has nothing to do with workstation or server builds. If you were doing some kind of automated install/build with Kickstart and Ansible Pull then that would be considered a build.
Great video, watching this gives me enough confidence to start using ansible-pull across my infrastructure.
A couple of times in the video you allude to some "extra-power" e.g. using pull mode with private repos, setting up a notification on error, but you don't go into further detail. I completely understand you excluding these deeper topics to keep the video streamlined, although it would be extra satisfying if you could provide links to further information on these skipped topics.
Thanks for your hard work on these videos, this is the best working overview of pull mode I've seen so far.
For example you can setup ntfy (allows you to send notifications with simple GET request) for yourself and send notification on fail with ||
I use terraform to create git repositories. It makes it really easy to keep clean repositories. I really like linode, packer, terraform, ansible-pull, and git combination. You can build things out quickly. Great video.
Video starts at 14:12. The info before is how to create a repository and push a commit to remote.
Thank you very much, Jay, for doing such an amazing work and offering it for free! I believe I have learnt some wonderful things that are intended to be shared with the rest of the world, and individuals like you have made that possible!
I'm hoping to see more fantastic works like this on your UA-cam channel in the near future.
No idea how I missed that ansible-pull was a thing. Great video, love the content and the channel
Great video, I would like to suggest a video on ansible pull with private git repos. I think ppl would look like to see that video as well.
This is awesome. Ansible pull seems is easy to set up. Now I can roll SSH keys if need be and do mass scale configuration. Thanks for the video.
Nice video Jay, didn't even know this function existed, love the cron job playbook
this is great stuff jay. so useful. I'm going to set this up immediately. thanks!
Outstanding video!
Thank you for a great content, Jay! Just a quick question, what would you advise to avoid a theoretical overlapping of two provisions? In your case it would possible if one of the updates lasted more than 10 min.
Thank you so much for this tutorial!
Great stuff !
This is like a reverse way of IaC via Ansible + Gitlab CI where the Gitlab runners take care of the automated provisioning..
It will be great if you can make a video about it..
I'm not sure if I get the "centralize configuration management" thingy here. If you let nodes pull in their Ansible stuff and run it, how do you get a central overview of what's going on then? Then you need to have something easy setup to visualize how these Ansible runs are doing. Otherwise you're flying blind. There are ways to do this, with callback plugins if I recall correctly. But that's not discussed here. So this is not "everything you need to know in order to use ansible-pull".
Also, Ansible has to run the full playbook, which is quite resource intensive. Why not use Salt if you want a setup like this? Which runs an agent and keeps an eye out for what is out of sync and just applies what's needed for that.
Can you do a video on your bootstrap process?
Thank you very much for your video. That was great
Thank you Soooo much this is going to save me so much time
Thanks very much, Jay. When is your 4th edition book coming out?
No exact date yet, but anytime within 3-6 weeks (my best guess).
Really cool tuto thank you
I can't seem to figure out how to get it to work with a repo that I have hosted on my private server. I always just get a very long error message
I have been trying to do this in a little bit of a different way. I'm was able to use the $HOME variable in ansible, but I can't get a $USER variable to work so I don't have to relabel if I have a different account name. Can you shed some insight
Please make a video on how to install linux brew via ansible and then manage most packages via brew.
Cron solution is a little bit "ugly". I would love to see some webhooks in action for such things. Currently im looking for some simple tool for that. I most familiar with Jenkins but its like shooting a flies with a cannon. Rundeck or Stackstorm look big and bulky as well, not to mention AWX. I could write some python script - requests and jsons are easy there. But im not programmer, i prefer to use others (better written) tools. Maybe you could recommend something lightweight?
But offcource video is great, despite of that.
Thanks
thanks for this video
Excellent
Thanks Jay, great video.
This tool needs a second video: How to manage a set of servers, all with a common set of base packages, but each with its own configuration as well, eg Kubernetes control plane or worker nodes, storage and backup, monitoring, messaging, etc.
I have been following your video on ansible and highly appreciate it as I find it useful. I am trying to deploy splunk in a set of hosts using ansible. Instead of the playbooks available in git. Could you make a video on deploying splunk and splunk forwarder by writing an ansible playbook? The playbook to contain wget of splunk url and wget of splunk forwarder url followed by the user name password and the ports and directories to be configured. I find this challenging and appreciate if you could make a video on this.
I don't have that on my shortlist currently, but once I'm finished with my backlog you never know what may come next.
@@LearnLinuxTV I'm waiting
@@aadhinarayanan761 i dont think this special problem is very helpful to all viewers.
you could bootstrap the playbook with ansible-pull, use the ansible modules "uri" or "get_url" (or "shell" if nothing else fit your needs) to obtain data from remote and put that into variables to run your playbook.
@@Lindguardian I think may be I am one who came up to post this here. But that doesn't mean that's a special problem and that is not helpful to others.
Thanks so much again!!! awesome, hope you'll keep on doing videos for Ansible. seems like from one videos to another you are uncovering the secrets of Ansible. :)
what can be the issue, when nothing happens after 10 minutes?
i'm editing the packages.yml files, then i'm pushing the changes to git, but after 10 minutes nothing happends. i thought the app will be installed, but as i'm watching Crontab logs, after 10 minutes nothing happens, and i've followed every step of this video, and when i triggered the Ansible-pull it ended successfully just like in your screen.
what do you think can be the issue?
Love the shirt.
Thanks!
I know several things have changed in Ansible since this video was produced. But I'm having a problem with the copy sudoers_ansible section.
- name: copy sudoers_ansible
copy:
src: files/sudoers_ansible
dest: /etc/sudoers.d/ansible
owner: root
group: root
mode: 0440
I get an error that I can't decypher:
TASK [copy sudoers_ansible] ***************************************************
fatal: [localhost]: FAILED! => {"changed": false, "checksum": "9c9e5aae4aa1c02a4934d7172d2c4cd6c057d15d",
"msg": "Unsupported parameters for (ansible.legacy.copy) module: root Supported parameters include:
_original_basename, attributes, backup, checksum, content, dest, directory_mode, follow, force, group,
local_follow, mode, owner, remote_src, selevel, serole, setype, seuser, src, unsafe_writes, validate"}
As best as I can tell, we are only using 5 parameters, src, dest, owner, group & mode. All of which are identified as being supported.
Any ideas?
I found my problem. I had two different users.yml files and the one being used had root: root rather than group: group
OMG How do you get a unicorn in your terminal? lol that's awesome!!
It's super easy. If your distribution supports emoji's, then copy this and paste it into the PS1 prompt in your .bashrc: 🦄
@@LearnLinuxTV Thanks!
Using the initial commit, I got the error "ERROR! 'host' is not a valid attribute for a Play". I fixed changing the yml file to:
---
- name: Install htop
hosts: localhost
connection: local
become: true
tasks:
- name: Install htop
apt:
name: htop
Great video, Jay. Aside from the syntax change that I found, everything went smoothly. Thank you!!!!
I know this may sound knit picky but I think the title of your video is misleading. To me this is more of using Ansible Pull to manage existing servers. That has nothing to do with workstation or server builds. If you were doing some kind of automated install/build with Kickstart and Ansible Pull then that would be considered a build.