{"id":24128129,"url":"https://github.com/parolkar/automated_sysadmin_screen_test","last_synced_at":"2025-09-18T21:30:58.118Z","repository":{"id":8541987,"uuid":"10162463","full_name":"parolkar/automated_sysadmin_screen_test","owner":"parolkar","description":"Automated SysAdmin Screen Test -  write interview test in **Rspec** and provision a problem environment using **Puppet** ","archived":false,"fork":false,"pushed_at":"2014-02-05T03:44:04.000Z","size":129,"stargazers_count":5,"open_issues_count":0,"forks_count":10,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-05-19T00:05:09.507Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Puppet","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/parolkar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-05-19T22:53:36.000Z","updated_at":"2024-05-19T00:05:09.508Z","dependencies_parsed_at":"2022-09-05T13:30:43.254Z","dependency_job_id":null,"html_url":"https://github.com/parolkar/automated_sysadmin_screen_test","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parolkar%2Fautomated_sysadmin_screen_test","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parolkar%2Fautomated_sysadmin_screen_test/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parolkar%2Fautomated_sysadmin_screen_test/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parolkar%2Fautomated_sysadmin_screen_test/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/parolkar","download_url":"https://codeload.github.com/parolkar/automated_sysadmin_screen_test/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233523262,"owners_count":18689070,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-11T18:37:15.219Z","updated_at":"2025-09-18T21:30:52.839Z","avatar_url":"https://github.com/parolkar.png","language":"Puppet","readme":"##Automated SysAdmin Screen Test \nToolkit to help you screen sysadmin/devops candidates based on Rspec + Puppet\n\n---------------------------------------------------------\n\n\nAre you hiring Administrators/Devops in your Ops team? Do you need a better way to shortlist applicants remotely and automatically? and you want to present realworld problems to applicant and not just theoretical questions? \n\n**Automated SysAdmin Screen Test Toolkit (ASASTT)** allows you to write your interview test in **Rspec** and provision a problem environment using **Puppet** on your choice of hosting (local or AWS EC2). \n\n### How does it work?\n\n* You formulate a creative sysadmin problem with puppet \u0026 rspec (something that can be solved in short time frame (like 15 min))\n* The rspec tests describes the check for when problem is successfully solved\n* You provision the server which also transfers encrypted rspec tests \n* Candidate logs-in, finds the instructions and finishes the problem or the time expires\n* You run the test (which decrypts it) and provide you result on how many rspec examples passed and failed.\n\n\n### Using the toolkit\nThere are two components in this toolkit\n \n* **Supervillain** : This is the puppet part of the toolkit which allows you to provision target server but does some nasty modifications to the environment to make problem challenging\n* **Litmus** : This is the rspec test suite which helps you perform the checks\n\n### What kinda screening test can you create here?\n\nJust look at the example [puppet manifest](https://github.com/parolkar/automated_sysadmin_screen_test/blob/master/supervillain/puppet/modules/destructor/manifests/test_1.pp)   \u0026 [rspec tests](https://github.com/parolkar/automated_sysadmin_screen_test/blob/master/litmus/spec/problem_1_spec.rb). That will give you an idea about sort of challenges that can be provisioned.\n\n### Want to give it a try?\n\nFirst thing you need to use this toolkit is [Vagrant 1.1+](http://www.vagrantup.com/) with [AWS provider](https://github.com/mitchellh/vagrant-aws). Once you have that installed\n\n* Clone the repo \n\u003cpre\u003e\n  $ git clone git@github.com:parolkar/automated_sysadmin_screen_test.git asastt\n  $ cd asastt\n\u003c/pre\u003e  \n* Add Vagrant vbox for AWS\n\u003cpre\u003e\n  $ vagrant box add dummy https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box\n\u003c/pre\u003e \n\n* Check what's in the supervilian's puppet manifests to [describe the challenge](https://github.com/parolkar/automated_sysadmin_screen_test/blob/master/supervillain/puppet/modules/destructor/manifests/test_1.pp)  \n  \n* Check what's in the [litmus/spec](https://github.com/parolkar/automated_sysadmin_screen_test/blob/master/litmus/spec/problem_1_spec.rb). You should have rspec tests corresponding to challenges described in supervilian. Perform spec packaging by supplying the password (which will be used when you run the test)\n\u003cpre\u003e\n  $ cd litmus\n  $ ./package.sh\n  Litmus packaging password: *****\n\u003c/pre\u003e  \n  \n* Create/modify configuration to supply your aws credentials before you can provision the test enviroment\n\u003cpre\u003e  \n  $ cd supervillain\n  $ cp config/aws.rb.sample config/aws.rb\n\u003c/pre\u003e\n\n* Provisioning is simple \n\u003cpre\u003e \n  $ cd supervillain\n  $ vagrant up --provider=aws\n    Bringing machine 'default' up with 'aws' provider...\n    [default] Warning! The AWS provider doesn't support any of the Vagrant\n    high-level network configurations (`config.vm.network`). They\n    will be silently ignored.\n    [default] Launching an instance with the following settings...\n    [default]  -- Type: m1.small\n    [default]  -- AMI: ami-7a4c2c13\n    [default]  -- Region: us-east-1\n    [default]  -- Keypair: screentest-keypair\n    [default] Waiting for instance to become \"ready\"...\n    [default] Waiting for SSH to become available...\n    [default] Machine is booted and ready for use!\n    [default] Rsyncing folder: /Users/star/workspace/automated_sysadmin_screentest/supervillain/ =\u003e /vagrant\n    .\n    .\n    .\n    \n  $ vagrant ssh\n\n    \n\n               _   _              _   _            _\n              | | | |            | | | |          | |\n              | |_| | ___ _   _  | |_| | __ _  ___| | _____ _ __\n              |  _  |/ _ \\ | | | |  _  |/ _` |/ __| |/ / _ \\ '__|\n              | | | |  __/ |_| | | | | | (_| | (__|   \u003c  __/ |\n              \\_| |_/\\___|\\__, | \\_| |_/\\__,_|\\___|_|\\_\\___|_|\n                           __/ |\n                          |___/\n               You can find the problems in /challenges directory\n               You have full power on this machine, you are sudoer\n                             Good luck :)\n\n\n    Last login: Mon Apr 22 01:50:16 2013 from Hacker\n    $\n    \n\u003c/pre\u003e\n\nThat's about it, you can now share the instance detail with the candidate and let her finish the task, once done you could log in to the server \u0026 run the test like this\n\n\u003cpre\u003e\n  # cd /litmus\n  # ./run_litmus_test.sh\n  (This will ask for the password)\n   Problem 1:\n    http://superstar.admin.com should return 200 status\n    networking\n      should not allow traffic from blocked IP addresses (165.4.45.3) (FAILED - 1)\n   . . .\n   Finished in 1.1 seconds\n   200 examples, 198 failures\n  \n\u003c/pre\u003e\n\nThis will decide if the candidate has passed the test or not\n\n\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n\u003csub\u003e***************************************\u003c/sub\u003e\n\u003cbr\\\u003e\n\n\u003csub\u003e\u003cfont size='1'\u003e\nCopyright (c) 2013 Abhishek Parolkar [abhishek[at]parolkar[dot]com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\u003c/font\u003e\u003c/sub\u003e\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparolkar%2Fautomated_sysadmin_screen_test","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fparolkar%2Fautomated_sysadmin_screen_test","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparolkar%2Fautomated_sysadmin_screen_test/lists"}