Repos with recipes to deploy some infrastructure services
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

97 lignes
2.5 KiB

  1. ---
  2. - import_playbook: playbook_ssh_known_host.yml
  3. - name: Configure jumpbox
  4. hosts:
  5. - all
  6. gather_facts: yes
  7. vars_files:
  8. - vars/jumpbox.yml
  9. tasks:
  10. - name: Install useful packages
  11. package:
  12. name: "{{ packages }}"
  13. state: present
  14. become: true
  15. become_method: sudo
  16. - name: Install pip useful packages
  17. pip:
  18. name: "{{ pip_packages }}"
  19. executable: "{{ pip_exe | default(omit, true) }}"
  20. state: present
  21. extra_args: "{{ pip_args }}"
  22. - name: Update ssh config
  23. block:
  24. - name: Modify sshd config
  25. lineinfile:
  26. path: /etc/ssh/sshd_config
  27. regexp: '^MaxStartups.*'
  28. line: MaxStartups 100:30:100
  29. - name: Modify ssh config
  30. lineinfile:
  31. path: /etc/ssh/ssh_config
  32. regexp: '^ServerAliveInterval.*'
  33. line: ServerAliveInterval 60
  34. - name: Restart service ssh
  35. service:
  36. name: sshd
  37. state: restarted
  38. become: true
  39. become_method: sudo
  40. - name: Determine existing users
  41. shell: 'cut -d: -f1 /etc/passwd | grep d*-local'
  42. register: existing_users
  43. failed_when: false
  44. - name: Create username list
  45. set_fact:
  46. new_usernames: "{{ new_usernames | default([]) }} + ['{{item.username}}']"
  47. loop: "{{ users }}"
  48. - name: Update users
  49. block:
  50. - name: Delete removed users
  51. user:
  52. name: "{{ item }}"
  53. remove: true
  54. force: true
  55. state: absent
  56. loop: "{{ existing_users.stdout_lines | default([]) }}"
  57. when: item not in new_usernames
  58. - name: Create local user accounts
  59. user:
  60. name: "{{ item.username }}"
  61. password: "{{ item.passwd | password_hash('sha512') }}"
  62. loop: "{{ users }}"
  63. - name: Add authorized keys
  64. authorized_key:
  65. user: "{{ item.username }}"
  66. key: "{{ item.pubkey }}"
  67. loop: "{{ users }}"
  68. - name: Ensure sudoers.d exist
  69. file:
  70. path: "/etc/sudoers.d/"
  71. state: directory
  72. owner: root
  73. group: root
  74. - name: Create user sudoers files
  75. template:
  76. src: sudoers.j2
  77. dest: "/etc/sudoers.d/99-users"
  78. owner: root
  79. group: root
  80. mode: '0640'
  81. become: true
  82. become_method: sudo
  83. no_log: True
  84. ...