Skip to content

Instantly share code, notes, and snippets.

@sbeliakou
Created July 23, 2021 19:01
Show Gist options
  • Save sbeliakou/fe6658cc441c4e58ea9abf8d0f37bb8c to your computer and use it in GitHub Desktop.
Save sbeliakou/fe6658cc441c4e58ea9abf8d0f37bb8c to your computer and use it in GitHub Desktop.
# go run checkup.go -c ansible/day2/tests/webapp-server.yml -w homeworks/day2
name: 3.1 Working with Filters
cases:
- global_env:
ANSIBLE_TRANSPORT: docker
ANSIBLE_FORCE_COLOR: True
ANSIBLE_TRANSPORT: local
SERVER: remotevm
- case: "playbook linter (ansible-lint filters.yml)"
script: |
grep '\.\.\.' filters.yml && exit 1 || echo
ansible-lint filters.yml
- case: "playbook syntax check"
script: |
grep '\.\.\.' filters.yml && exit 1 || echo
ansible-playbook filters.yml -i remotevm, -v --syntax-check
- case: playbook works
script: |
grep '\.\.\.' filters.yml && exit 1 || echo
export ANSIBLE_STDOUT_CALLBACK=default
run ansible-playbook filters.yml -i remotevm, -v -c local
assert_success
assert_output --partial "unreachable=0"
assert_output --partial "failed=0"
weight: 14
- case: random_value is ok
script: |
grep '\.\.\.' filters.yml && exit 1 || echo
egrep 'random_value: "\{\{' filters.yml | grep -w 100 | grep '[|] *random *+ *1'
egrep --color 'random_value.* *<= *100' filters.yml | egrep '[|] *int'
egrep --color 'random_value.* *>= *1' filters.yml | egrep '[|] *int'
- case: Task 'Should be "mickey mouse"'
script: |
grep '\.\.\.' filters.yml && exit 1 || echo
msg=$(cat filters.yml | yq e -j - | jq -r '.[] | .tasks[] | select(.name == "Should be \"mickey mouse\"") | .debug')
ansible localhost -c local -m debug -e 'student_name="Willie Miller"' -a "$msg" | grep '"msg": "willie miller"'
- case: Task 'Should be "Name - Mickey, Surname - Mouse"'
script: |
grep '\.\.\.' filters.yml && exit 1 || echo
msg=$(cat filters.yml | yq e -j - | jq -r '.[] | .tasks[] | select(.name == "Should be \"Name - Mickey, Surname - Mouse\"") | .debug')
ansible localhost -c local -m debug -e 'student_name="Willie Miller"' -a "$msg" | grep '"msg": "Name - Willie, Surname - Miller"'
- case: Task 'Should be "Mickey MOUSE"'
script: |
grep '\.\.\.' filters.yml && exit 1 || echo
msg=$(cat filters.yml | yq e -j - | jq -r '.[] | .tasks[] | select(.name == "Should be \"Mickey MOUSE\"") | .debug')
ansible localhost -c local -m debug -e 'student_name="Willie Miller"' -a "$msg" | grep '"msg": "Willie MILLER"'
- case: Task 'Should be "Minnie Mouse"'
script: |
grep '\.\.\.' filters.yml && exit 1 || echo
msg=$(cat filters.yml | yq e -j - | jq -r '.[] | .tasks[] | select(.name == "Should be \"Minnie Mouse\"") | .debug')
ansible localhost -c local -m debug -e 'student_name="Mickey Mouse"' -a "$msg" | grep '"msg": "Minnie Mouse"'
- case: Task 'Save profile variable in Json file (one line)'
script: |
grep '\.\.\.' filters.yml && exit 1 || echo
cat profile.json | jq &&
wc -l profile.json | egrep -w '[01]'
- case: Task 'Save profile variable in Json file (multiple lines, indentation)'
script: |
grep '\.\.\.' filters.yml && exit 1 || echo
jq . profile_pretty.json &&
cat profile_pretty.json | wc -l | awk '$1 >= 5{print "OK"}' | grep -w OK
- case: Task 'Should be in Json format (multiple lines, indentation)'
script: |
grep '\.\.\.' filters.yml && exit 1 || echo
cat filters.yml | yq e -j - | jq -r '.[] | .tasks[] | select(.name == "Should be in Json format (multiple lines, indentation)") | .debug' | egrep -w 'to_nice_json'
- case: Task 'Create dict variable from string value'
script: |
grep '\.\.\.' filters.yml && exit 1 || echo
cat filters.yml | yq e -j - | jq -r '.[] | .tasks[] | select(.name == "Create dict variable from string value") | .set_fact' |
grep -w string_value.msg | egrep '[|] *from_json'
- case: Task 'Testcase with assert module that just_created_varaible variable corresponds to profile origin'
script: |
grep '\.\.\.' filters.yml && exit 1 || echo
egrep 'just_created_variable.firstname == "{{' filters.yml | grep profile.firstname &&
egrep 'just_created_variable.lastname == "{{' filters.yml | grep profile.lastname &&
egrep 'just_created_variable.age == {{' filters.yml | grep profile.age
- case: Task 'Encode with base64 sensitive data'
script: |
grep '\.\.\.' filters.yml && exit 1 || echo
cat filters.yml | yq e -j - | jq -r '.[] | .tasks[] | select(.name == "Encode with base64 sensitive data") | .debug' |
grep -w b64encode
- case: Task 'Decode Base64 encoded string'
script: |
grep '\.\.\.' filters.yml && exit 1 || echo
cat filters.yml | yq e -j - | jq -r '.[] | .tasks[] | select(.name == "Decode Base64 encoded string") | .debug' |
grep -w b64decode
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment