Skip to content

Commit

Permalink
Add playbook to run on controller node
Browse files Browse the repository at this point in the history
  • Loading branch information
hellais committed Jul 3, 2024
1 parent 43d14e2 commit 73720b0
Show file tree
Hide file tree
Showing 5 changed files with 79 additions and 0 deletions.
4 changes: 4 additions & 0 deletions ansible/controller-playbook.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
- hosts: 127.0.0.1
connection: local

22 changes: 22 additions & 0 deletions ansible/group_vars/all/vars.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
ssh_users:
agrabeli:
login: agrabeli
comment: Maria Xynou
keys: ["ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDD0JSwM+t3Uz9lS3Mjoz9oo4vOToWyzboZhYQbP8JY5HvFtAvWanWHnUBO91t6hkgKIMiUqhdCJn26fqkhSGe/bRBaFUocOmuyfcmZoRdi0qzAskmycJsj/w6vWR4x6MYkmJvSeI/MGxjEFt4s2MfOG1tP8CBLUYft9qUleeJa7Jln8c+xbnqB7YngaI190icQHE9NuIB2CXvzbmo3tLtHNMagEwI7VoBDj6mxzTxBd9JhuhF4w5uGxxm0Gp1hzk+15obNnaBS+Anr7jXz8FPwwxCH+XhBZxB1PPpcIayKrf9iLyGtwmhkdDoWCqYAr1mue3LxFso+TZF4bwE4Cjt1 agrabelh@agrabelh"]
art:
login: art
comment: Arturo Filasto
keys: ["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJsibU0nsQFFIdolD1POzXOws4VetV0ZNByINRzY8Hx0 [email protected]"]
majakomel:
login: majakomel
comment: Maja Komel
keys:
- "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC7gWQL4h/IyMbwDuMIXbTVmNEm8Yx19Ftt0P2e3OyWctSMH7WGaHc6b0dGoGh6Y4x0Kpw5h0iHWshP8Rg0pckNG9LeDjLY9nLR3Jv66ogFQtFi1DAlg4CXe369N70rBN9iurndgXjShW9OV+bY+MOlW8Fmmm67Vg0xFiYuYzjgUOpl4ofkbLGAQ7sJRBzpDV6TqHhGfOdYMDJyfFvurVz0oSyEZPFFRv4Css9iVk7BGsBukCCpUuax8akEeEjxWWCvjYXva7OA0jHKayfPAroZx/OJh01rhFe7wxlu5JwUKOcevvAZqeHh6200C82ijZOCN+Qq9yvxOH+OgzhnQwnoetIbGFgnb4CkDxo7dVLc/DFyObznC4f26f5D1OyPMUX8AEarEVdEPwsEfD2ePQr6qek0XWCWtYvGklb+GRLk9Yn0VL1qwvgrtstHdeXsKONTPKRxaCjWHu18dQaG2qOUnZ+St6SHeL49CN9aav2azNI/YKoQ9SGR4D23XeBRsW8="
mehul:
login: mehul
comment: Mehul Gulati
keys:
- "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDEZSA9TKUaYWG8gfnMoyDZO2S6vsy87xma4R/EzNpveZiOZTYSNn+UDL8NpQRuH5YgdWuQV2E7sKw/PIYA0lC/QTiq8Btqf6sEK5YWXtQy+yn9q5kB/rmi8zjaz0FUNigRrjL+26ao+c7NKpgmR+TRqbRd5VeJ46PuFD5M3c+MBeUoF1PT0zfioQFJ1mQoXwVix0n260clEXQDp4t0GZuNpWGTS+YTuJZ2vl6TDZtt8jrnENd99QArr2KU+NMTq8T2KYcPeQOoYsm7v/1TBkbv9UStllhjdE7HZSivPT8oRkF2YZYgytDxtCZG8i5iCK+vbNn6QmZMjuXPoBUeW+Njm70tlsirrKpUX+QiogA2qljxPD9st2eUkA7cATyOBkK7WLh1HYv2xyKpPtkkaELG+EHjmaVjVdyVAgUYwqg+MbIw1OyDpNmMZcW3iOpGpflXPMmLjKNMhee0//G7NxcGfwmIMbIiBkeofOnWDrMo+0PRULFtn6C7aA7ddirck+k="

admin_usernames: [ art, majakomel, mehul ]
non_admin_usernames: [ agrabeli ]
42 changes: 42 additions & 0 deletions ansible/roles/user_setup/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
- name: create admin users
tags: ssh_users
user:
name: "{{ item }}"
group: "admin"
comment: "{{ ssh_users[item].comment }}"
shell: /bin/bash
state: present
with_items: "{{ admin_usernames }}"

- name: create non-admin users
tags: ssh_users
user:
name: "{{ item }}"
group: "{{ item }}"
comment: "{{ ssh_users[item].comment }}"
shell: /bin/bash
state: present
with_items: "{{ non_admin_usernames }}"

- name: create .ssh dir in user homes
tags: ssh_users
file: path=/home/{{item}}/.ssh state=directory owner={{item}} group={{item}} mode=0700
with_items: "{{ admin_usernames | union(non_admin_usernames) }}"

- name: create .ssh/authorized_keys for each user
tags: ssh_users
template: src=authorized_keys dest=/home/{{item}}/.ssh/authorized_keys owner={{item}} group={{item}} mode=0400
with_items: "{{ admin_usernames | union(non_admin_usernames) }}"

- name: list all users currently on the system
shell: "getent passwd | awk -F: '$3 > 1000 {print $1}'"
register: user_list

- name: remove any stale users
user:
name: "{{ item }}"
state: "absent"
remove: "yes"
with_items: user_list.stdout_lines
when: "item is not nobody and item not in admin_usernames | union(non_admin_usernames)"
5 changes: 5 additions & 0 deletions ansible/roles/user_setup/templates/authorized_keys
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# managed by ansible
# see roles/adm/templates/authorized_keys
{% for k in passwd[item]['keys'] %}
{{ k }}
{% endfor %}
6 changes: 6 additions & 0 deletions ansible/roles/user_setup/templates/authorized_keys_ubuntu
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# ansible-managed in ooni-sysadmin.git
{% for login in adm_logins %}
{% for k in passwd[login]['keys'] %}
{{ k }}
{% endfor %}
{% endfor %}

0 comments on commit 73720b0

Please sign in to comment.