Using Ansible "Pull" Mode to Dynamically Automate Server/Workstation Builds

Поділитися
Вставка
  • Опубліковано 14 гру 2024

КОМЕНТАРІ • 50

  • @tmthyrd
    @tmthyrd 4 роки тому +16

    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.

    • @rafal9ck817
      @rafal9ck817 3 місяці тому

      For example you can setup ntfy (allows you to send notifications with simple GET request) for yourself and send notification on fail with ||

  • @MarkWatsonSMTX
    @MarkWatsonSMTX 2 роки тому +3

    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.

  • @sandoh9500
    @sandoh9500 Місяць тому +1

    Video starts at 14:12. The info before is how to create a repository and push a commit to remote.

  • @jaykayzen2868
    @jaykayzen2868 3 роки тому +1

    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.

  • @mcdermg
    @mcdermg 3 роки тому

    No idea how I missed that ansible-pull was a thing. Great video, love the content and the channel

  • @frederickalcantara2066
    @frederickalcantara2066 3 роки тому +3

    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.

  • @GrishTech
    @GrishTech 3 роки тому +1

    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.

  • @kenmurphy4259
    @kenmurphy4259 3 роки тому

    Nice video Jay, didn't even know this function existed, love the cron job playbook

  • @kodikodi9948
    @kodikodi9948 2 роки тому

    this is great stuff jay. so useful. I'm going to set this up immediately. thanks!

  • @steaders82
    @steaders82 3 роки тому

    Outstanding video!

  • @igorkugaudo8212
    @igorkugaudo8212 Рік тому

    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.

  • @murtadha96
    @murtadha96 Рік тому

    Thank you so much for this tutorial!

  • @user-ano-x5c
    @user-ano-x5c 4 роки тому

    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..

  • @UPPERKEES
    @UPPERKEES 3 роки тому +1

    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.

  • @RoborobsComputers
    @RoborobsComputers 3 роки тому +1

    Can you do a video on your bootstrap process?

  • @vitshirgazin7845
    @vitshirgazin7845 10 місяців тому

    Thank you very much for your video. That was great

  • @darylblake1
    @darylblake1 3 роки тому

    Thank you Soooo much this is going to save me so much time

  • @trido3815
    @trido3815 2 роки тому

    Thanks very much, Jay. When is your 4th edition book coming out?

    • @LearnLinuxTV
      @LearnLinuxTV  2 роки тому +1

      No exact date yet, but anytime within 3-6 weeks (my best guess).

  • @guillaumerousseau9549
    @guillaumerousseau9549 2 роки тому

    Really cool tuto thank you

  • @nickhuber5476
    @nickhuber5476 3 роки тому

    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

  • @kalifornia909
    @kalifornia909 4 роки тому

    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

  • @j.h.6672
    @j.h.6672 Рік тому

    Please make a video on how to install linux brew via ansible and then manage most packages via brew.

  • @180doman
    @180doman 4 роки тому +1

    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?

    • @180doman
      @180doman 4 роки тому

      But offcource video is great, despite of that.

  • @bashardlaleh2110
    @bashardlaleh2110 3 роки тому

    Thanks

  • @nagendrabohora9110
    @nagendrabohora9110 4 роки тому

    thanks for this video

  • @ForrestRhoads
    @ForrestRhoads 4 роки тому

    Excellent

  • @stompreaper
    @stompreaper 4 роки тому

    Thanks Jay, great video.

  • @Harridu
    @Harridu Рік тому

    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.

  • @aadhinarayanan761
    @aadhinarayanan761 4 роки тому

    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.

    • @LearnLinuxTV
      @LearnLinuxTV  4 роки тому +1

      I don't have that on my shortlist currently, but once I'm finished with my backlog you never know what may come next.

    • @aadhinarayanan761
      @aadhinarayanan761 4 роки тому

      @@LearnLinuxTV I'm waiting

    • @Lindguardian
      @Lindguardian 4 роки тому

      @@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.

    • @aadhinarayanan761
      @aadhinarayanan761 4 роки тому

      @@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.

  • @nahum35
    @nahum35 4 роки тому

    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?

  • @blahblahblahblah2933
    @blahblahblahblah2933 4 роки тому +1

    Love the shirt.

  • @paultruzzi911
    @paultruzzi911 3 роки тому

    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?

    • @paultruzzi911
      @paultruzzi911 3 роки тому

      I found my problem. I had two different users.yml files and the one being used had root: root rather than group: group

  • @bluesdog88
    @bluesdog88 4 роки тому +1

    OMG How do you get a unicorn in your terminal? lol that's awesome!!

    • @LearnLinuxTV
      @LearnLinuxTV  4 роки тому +3

      It's super easy. If your distribution supports emoji's, then copy this and paste it into the PS1 prompt in your .bashrc: 🦄

    • @bluesdog88
      @bluesdog88 4 роки тому

      @@LearnLinuxTV Thanks!

  • @cgarafulic
    @cgarafulic Рік тому

    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

    • @cgarafulic
      @cgarafulic Рік тому

      Great video, Jay. Aside from the syntax change that I found, everything went smoothly. Thank you!!!!

  • @Squash_Man
    @Squash_Man Рік тому

    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.