playbook-initial_install.yml 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. ---
  2. - hosts: all
  3. user: mike
  4. become: true
  5. tasks:
  6. # - name: Update Server
  7. # apt:
  8. # upgrade: true
  9. # update-cache: true
  10. # cache_valid_time: 3600
  11. - name: Make users passwordless for sudo in group mike
  12. lineinfile:
  13. path: /etc/sudoers
  14. state: present
  15. regexp: '^%sudo'
  16. line: '%sudo ALL=(ALL) NOPASSWD: ALL'
  17. validate: 'visudo -cf %s'
  18. - name: Install Core Server Utils
  19. apt:
  20. pkg:
  21. - curl
  22. - python3
  23. - ufw
  24. - samba
  25. - smbclient
  26. - cifs-utils
  27. - apt-transport-https
  28. - ca-certificates
  29. - curl
  30. - software-properties-common
  31. - python3-pip
  32. - virtualenv
  33. - python3-setuptools
  34. - rsync
  35. state: present
  36. # update_cache: true
  37. cache_valid_time: 3600
  38. - name: Add Docker GPG apt Key
  39. apt_key:
  40. url: https://download.docker.com/linux/ubuntu/gpg
  41. state: present
  42. - name: Add Docker Repository
  43. apt_repository:
  44. repo: deb https://download.docker.com/linux/ubuntu focal stable
  45. state: present
  46. - name: Update apt and install docker-ce
  47. apt:
  48. name:
  49. - docker-ce
  50. - containerd.io
  51. - docker-compose
  52. state: latest
  53. update_cache: true
  54. - name: Add user to docker group
  55. user:
  56. name: "{{ansible_user}}"
  57. group: docker
  58. - name: Install Docker Containers
  59. community.docker.docker_container:
  60. name: portainer
  61. image: portainer/portainer-ce
  62. # - name: Create Portainer Directory
  63. # file:
  64. # path: /home/mike/docker/portainer
  65. # state: directory
  66. # become_user: mike
  67. - name: Create UFW directory
  68. file:
  69. path: /home/mike/ufw/applications.d
  70. state: directory
  71. become_user: mike
  72. # - name: Sync Portainer docker-compose file
  73. # synchronize:
  74. # src: /home/mike/Software/ansible-debian/portainer/docker-compose.yml
  75. # dest: /home/mike/docker/portainer
  76. # become_user: mike
  77. - name: Install UFW config files
  78. synchronize:
  79. src: /home/mike/Software/ansible-debian/ufw/applications.d/TG-portainer
  80. dest: /home/mike/ufw/applications.d
  81. become_user: mike
  82. # - name: Move UFW files to proper directory
  83. # command: mv /home/mike/ufw/applications.d/TG-portainer /etc/ufw/applications.d/TG-portainer
  84. - name: Set ownership of UFW files to root
  85. file: dest=/etc/ufw/applications.d owner=root group=root recurse=yes
  86. ### Need to change ownership to root ###
  87. ### THIS DOES NOT WORK!
  88. ### IF RUN IN THIS SCRIPT, THIS CONTAINER IS started as 'mike' and cannot view /var/run/docker.sock
  89. ### if run alone (with --tags portainer) it works.
  90. # - name: Start Portainer
  91. # docker_compose:
  92. # project_src: /home/mike/docker/portainer
  93. # state: present
  94. # become: yes
  95. # become_method: sudo
  96. # tags: portainer
  97. - name: Configure UFW - allow OpenSSH, samba, and TG-portainer
  98. ufw:
  99. rule: allow
  100. name: "{{ item }}"
  101. with_items:
  102. - OpenSSH
  103. - samba
  104. # - TG-portainer
  105. # - name: Configure UFW - delete default allow 22
  106. # ufw:
  107. # rule: allow
  108. # port: 22
  109. # proto: tcp
  110. # delete: yes
  111. - name: Configure UFW - deny all else
  112. ufw:
  113. state: enabled
  114. policy: deny