swapper particion memoria crear con como aumentar ampliar 1gb memory amazon-web-services swap ansible

memory - particion - memoria swap android



AƱadir memoria de intercambio con ansible (3)

Aquí está el libro de jugabilidad con intercambio de ansible que utilizo para instalar 4GB (o lo que sea que configure group_vars para dd_bs_size_mb * swap_count ) de espacio de intercambio en nuevos servidores:

https://github.com/tribou/ansible-swap

También agregué una función en mi ~/.bash_profile para ayudar con la tarea:

# Path to where you clone the repo ANSIBLE_SWAP_PLAYBOOK=$HOME/dev/ansible-swap install-swap () { usage=''Usage: install-swap HOST''; if [ $# -ne 1 ]; then echo "$usage"; return 1; fi; ansible-playbook $ANSIBLE_SWAP_PLAYBOOK/ansible-swap/site.yml --extra-vars "target=$1" }

Solo asegúrese de agregar su HOST a su inventario disponible primero.

Entonces es solo install-swap HOST .

Estoy trabajando en un proyecto en el que es necesario tener memoria de intercambio en mis servidores para evitar que algunos procesos de Python que se ejecutan durante mucho tiempo se queden sin memoria y, por primera vez, me di cuenta de que mis cajas de vagrant de Ubuntu y las instancias de Ubuntu de AWS no tenían una. preparar.

En https://github.com/ansible/ansible/issues/5241 se discutió una posible solución integrada, pero nunca se implementó, así que supongo que esta debería ser una tarea bastante común para automatizar.

¿Cómo configurar una memoria de intercambio basada en archivos con ansible de una manera idempotente? ¿Qué módulos o variables proporciona ayuda ansible con esta configuración (como la variable ansible_swaptotal_mb )?


Esta es mi solución actual:

- name: Create swap file command: dd if=/dev/zero of={{ swap_file_path }} bs=1024 count={{ swap_file_size_mb }}k creates="{{ swap_file_path }}" tags: - swap.file.create - name: Change swap file permissions file: path="{{ swap_file_path }}" owner=root group=root mode=0600 tags: - swap.file.permissions - name: "Check swap file type" command: file {{ swap_file_path }} register: swapfile tags: - swap.file.mkswap - name: Make swap file command: "sudo mkswap {{ swap_file_path }}" when: swapfile.stdout.find(''swap file'') == -1 tags: - swap.file.mkswap - name: Write swap entry in fstab mount: name=none src={{ swap_file_path }} fstype=swap opts=sw passno=0 dump=0 state=present tags: - swap.fstab - name: Mount swap command: "swapon {{ swap_file_path }}" when: ansible_swaptotal_mb < 1 tags: - swap.file.swapon


Intenté la respuesta anterior, pero "Check swap file type" siempre regresó como changed y, por lo tanto, no es idempotent que se recomienda como una mejor práctica al escribir tareas Ansible.

La función que se muestra a continuación se ha probado en Ubuntu 14.04 Trusty y no requiere que se habilite gather_facts de datos.

- name: Set swap_file variable set_fact: swap_file: "{{swap_file_path}}" tags: - swap.set.file.path - name: Check if swap file exists stat: path: "{{swap_file}}" register: swap_file_check tags: - swap.file.check - name: Create swap file command: fallocate -l {{swap_file_size}} {{swap_file}} when: not swap_file_check.stat.exists tags: - swap.file.create - name: Change swap file permissions file: path="{{swap_file}}" owner=root group=root mode=0600 tags: - swap.file.permissions - name: Format swap file sudo: yes command: "mkswap {{swap_file}}" when: not swap_file_check.stat.exists tags: - swap.file.mkswap - name: Write swap entry in fstab mount: name=none src={{swap_file}} fstype=swap opts=sw passno=0 dump=0 state=present tags: - swap.fstab - name: Turn on swap sudo: yes command: swapon -a when: not swap_file_check.stat.exists tags: - swap.turn.on - name: Set swappiness sudo: yes sysctl: name: vm.swappiness value: "{{swappiness}}" tags: - swap.set.swappiness

Vars requeridos:

swap_file_path: /swapfile # Use any of the following suffixes # c=1 # w=2 # b=512 # kB=1000 # K=1024 # MB=1000*1000 # M=1024*1024 # xM=M # GB=1000*1000*1000 # G=1024*1024*1024 swap_file_size: 4G swappiness: 1