--- - hosts: localhost become: true vars: docker_edition: 'ce' docker_package_state: present docker_service_state: started docker_service_enabled: true docker_restart_handler_state: restarted docker_install_compose_plugin: true docker_compose_package: docker-compose-plugin docker_compose_package_state: present # Fallback chain: USER -> SUDO_USER -> ansible detected user docker_users: - "{{ lookup('env', 'USER') | default(lookup('env', 'SUDO_USER'), true) | default(ansible_user_id, true) }}" roles: - geerlingguy.docker tasks: # https://code.visualstudio.com/docs/setup/linux#_visual-studio-code-is-unable-to-watch-for-file-changes-in-this-large-workspace-error-enospc - name: Set fs.inotify.max_user_watches sysctl: name: fs.inotify.max_user_watches value: '524288' sysctl_file: /etc/sysctl.conf - name: Set net.core.somaxconn sysctl: name: net.core.somaxconn value: '1024' sysctl_file: /etc/sysctl.conf - name: Set vm.max_map_count sysctl: name: vm.max_map_count value: '262144' sysctl_file: /etc/sysctl.conf - name: Set vm.overcommit_memory sysctl: name: vm.overcommit_memory value: '1' sysctl_file: /etc/sysctl.conf - name: Set vm.swappiness sysctl: name: vm.swappiness value: '1' sysctl_file: /etc/sysctl.conf - name: Create disable-hugepages.service file ansible.builtin.copy: content: | [Unit] Description=Disable Transparent Hugepage Before=docker.service [Service] Type=oneshot ExecStart=/bin/bash -c 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' ExecStart=/bin/bash -c 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' [Install] RequiredBy=docker.service dest: /etc/systemd/system/disable-hugepages.service mode: '0644' notify: Reload systemd - name: Enable and start disable-hugepages.service ansible.builtin.systemd: name: disable-hugepages enabled: true state: started daemon_reload: true handlers: - name: Reload systemd ansible.builtin.systemd: daemon_reload: true