【发布时间】:2017-04-05 20:20:24
【问题描述】:
如何使用带有“何时”的 set_fact 模块来使用以下条件?我需要根据 RHEL 服务器中的总内存设置“shmall”值。 我需要知道操作员在 Ansible 中是如何工作的。
- name: Total Available Memory
shell: cat /proc/meminfo | grep MemTotal | awk '{print $2}'
register: MemTotal
# for RHEL7,SHMALL Setting should be (PHYSICAL MEMORY – MEMORY FOR SYSTEM) / PAGE SIZE with 4096 pagesize.
- name: SHMALL value to set for memory size less than 16G
set_fact:
shmall: 3670016
when: (MemTotal le "16777216") | int
- name: SHMALL value to set for memory size between 16G and 32G
set_fact:
shmall: 7340032
when: (MemTotal gt "16777216" and MemTotal le "33554432") | int
- name: SHMALL value to set for memory size between 32G and 64G
set_fact:
shmall: 14680064
when: (MemTotal gt "33554432" and MemTotal le "6710886") | int
- name: SHMALL value to set for memory size between 64G and 256G
set_fact:
shmall: 57671680
when: (MemTotal gt "67108864" and MemTotal le "268435456") | int
【问题讨论】:
-
- name: SHMALL value to set for memory size less than 16G set_fact: shmall: 3670016 when: ansible_memtotal_mb 16384 和 ansible_memtotal_mb 32768 和 ansible_memtotal_mb
-
- name: oracle-recommended sysctl sysctl: name: "{{ item.name }}" value: "{{ item.value }}" sysctl_file: /etc/sysctl.d/99- sysctl.conf ignoreerrors: yes # 忽略未知键的错误 with_items: - { name: "kernel.shmall", value: "{{ shmall }}" }
标签: linux unix automation ansible redhat