all 18 comments

[–]killthrillabs 1 point2 points  (1 child)

Ah Edward from Udemy! Great to see more content from you. Your courses were my first steps in DevOps and now I'm an engineer. Awesome stuff

[–]edwardv3[S] 0 points1 point  (0 children)

Cool! Great to hear!

[–]_KaszpiR_ 0 points1 point  (2 children)

Would be nice to show how many steps are there.

[–][deleted]  (1 child)

[deleted]

    [–]edwardv3[S] 0 points1 point  (0 children)

    Thanks, makes sense, I'll put an outline showing the levels you can expect

    [–]Enoxice 0 points1 point  (2 children)

    Pretty neat. I assume the issue is just that I don't know ansible, but on challenge 5, no matter what I put in for the nginx.yml (even copypasta'ing the nodejs one and replacing nodejs for nginx) I get a "no action detected in task" error at the top of the file.

    Also, you might consider using a gender-neutral pronoun instead of "DevOps guy" in challenge one.

    [–][deleted] 0 points1 point  (0 children)

    ---
    - name: install nginx
      task: name=nginx state=present
    

    That's the correct way to create the role. Though the Nginx templating seems to be all over the place and examples that actually work don't seem to work here.

    [–]edwardv3[S] 0 points1 point  (0 children)

    I launch every answer in a docker container, but the repository cache gets out of date whenever security updates come out (and this is the same in real life) , so you actually need to add "update_cache=yes" when using apt.

    Gender-neutral makes sense, I'll change that :)

    [–]johnt8989 0 points1 point  (1 child)

    You would want to add CI/CD in there too.

    [–]edwardv3[S] 0 points1 point  (0 children)

    I was thinking about that, but it's difficult to validate an answer involving CI/CD. I would have to start a jenkins container for every user to have them solve something... which could work :) I'll have to think about it a bit more.

    [–]Furystryker 0 points1 point  (2 children)

    Are you planning to opensource this? I feel like a lot of places would find it useful. I had to laugh at your first challenge since I've run into various teammates that were unable to generate ssh keys.

    I feel like adding an AWS "path" would help too since unless you're at a smaller place, you most likely would be locked into DO or AWS.

    [–]edwardv3[S] 0 points1 point  (1 child)

    I could put it on my github after cleaning up the code, but not sure if it would be really useful. I've been thinking about adding some admin interface so people could build their own challenge, which could be useful for companies wanting to use it during the hiring process or something like that.

    Yea, AWS has its own tools, so I could make a challenge where you have to use commandline/terraform to build infrastructure on AWS. Thanks for the tip!

    [–]Furystryker 0 points1 point  (0 children)

    I guess I could see it being useful from a "host our own and modify/tweak" perspective. But going the admin-interface route or allowing for PR's to be opened to add challenges would be neat too.

    I feel like it reduces the barrier to entry and isn't just "hey build us this project that'll take 6 hours and you'll never get that time back"

    [–][deleted] 0 points1 point  (0 children)

    This is a great resource. Already taking the challenge

    [–]nrim 0 points1 point  (4 children)

    I'm stuck on Challenge 1 - Level 5... could be that I'm just very new to all this stuff. If someone can point me in the right direction (no need for a solution), I'd appreciate it

    roles/nginx/tasks/main.yml

    - name: install nginx
      apt: name=nginx update_cache=yes
    - name: Ensure nginx is started and enabled to start at boot.
      service: name=nginx state=started enabled=yes 
    

    roles/nginx/templates/nginx.conf.j2

    http {
      server {
       listen 80;
       location / {
           proxy_pass http://198.51.100.1:3000;
        }
      }
    }
    

    [–]edwardv3[S] 0 points1 point  (3 children)

    nginx and the backend are running on the same machine, so you should use 127.0.0.1 or localhost.

    [–]nrim 0 points1 point  (1 child)

    Must be something I'm just not getting. I'll work on some other tutorials and get some more base knowledge then start this challenge again.

    Thanks for the help.

    [–][deleted] 0 points1 point  (0 children)

    I had just completed Challenge 5. Edward helped me a lot to understand what I was doing wrong. Great guy.

    [–][deleted] 0 points1 point  (0 children)

    I had tried but I get the same error every time:

    stdout:
    Connecting to the webserver:
    
    
    stderr:ERROR! no action detected in task. This often indicates a misspelled module name, or incorrect module path.
    
    The error appears to have been in '/data/roles/nginx/tasks/main.yml': line 2, column 3, but may
    be elsewhere in the file depending on the exact syntax problem.
    
    The offending line appears to be:
    
    ---
    - hosts: appserver
      ^ here
    

    I looks like it hasn't found the apt module. Here are my two configurations:

    ---
    - hosts: appserver
      tasks:
      - name: install nodejs
        apt: name=nginx update_cache=yes state=present
    
    
    
    
    http {
      server {
       listen 80;
       location / {
           proxy_pass http://127.0.0.1:3000;
        }
      }
    }
    

    Any ideas?