Repos with recipes to deploy some infrastructure services
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 

97 rindas
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. ...