You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
166 lines
4.4 KiB
166 lines
4.4 KiB
5 years ago
|
---
|
||
|
|
||
|
- include: facts.yml
|
||
|
|
||
|
- name: Install tools
|
||
|
apt:
|
||
|
name:
|
||
|
- pigz
|
||
|
- ksm-control-daemon
|
||
|
- openvswitch-switch
|
||
|
- ethtool
|
||
|
- patch
|
||
|
|
||
|
- name: Deploy vzdump config
|
||
|
template: src=vzdump.conf.j2 dest=/etc/vzdump.conf
|
||
|
|
||
|
- name: Deploy ksm configuration
|
||
|
template: src=ksmtuned.conf.j2 dest=/etc/ksmtuned.conf
|
||
|
notify: restart ksmtuned
|
||
|
|
||
|
- name: Handle ksm services
|
||
|
service: name=ksmtuned state={{ pve_ksm | ternary('started','stopped') }} enabled={{ pve_ksm | ternary(True,False) }}
|
||
|
|
||
|
- name: Configure modules to load
|
||
|
copy: content={{ pve_mod_to_load | join("\n") }} dest=/etc/modules-load.d/firewall.conf
|
||
|
register: pve_modules
|
||
|
|
||
|
- name: Load modules
|
||
|
service: name=systemd-modules-load state=restarted
|
||
|
when: pve_modules.changed
|
||
|
|
||
|
- name: Enable ocfs2 support
|
||
|
set_fact: pve_ocfs2=True
|
||
|
when: fstab | default([]) | selectattr('fstype','equalto','ocfs2') | list | length > 0
|
||
|
|
||
|
- name: Install ocfs2 support
|
||
|
apt: name=ocfs2-tools state=present
|
||
|
when: pve_ocfs2 == True
|
||
|
|
||
|
- name: Check proxmox cluster status
|
||
|
command: pvesh get /cluster/status --output-format=json
|
||
|
register: pve_cluster_status_1
|
||
|
ignore_errors: True
|
||
|
changed_when: False
|
||
|
|
||
|
- name: Parse proxmox cluster status
|
||
|
set_fact: pve_cluster={{ pve_cluster_status_1.stdout | from_json }}
|
||
|
when: pve_cluster_status_1.rc == 0
|
||
|
|
||
|
- name: Check proxmox cluster status (old pvesh)
|
||
|
command: pvesh get /cluster/status
|
||
|
when: pve_cluster_status_1.rc != 0
|
||
|
register: pve_cluster_status_2
|
||
|
changed_when: False
|
||
|
|
||
|
- name: Parse proxmox cluster status (old pvesh)
|
||
|
set_fact: pve_cluster={{ pve_cluster_status_2.stdout | from_json }}
|
||
|
when: pve_cluster_status_1.rc != 0
|
||
|
|
||
|
- name: Deploy ocfs2 config
|
||
|
template: src=ocfs2.conf.j2 dest=/etc/ocfs2/cluster.conf
|
||
|
when: pve_ocfs2 == True
|
||
|
notify: restart o2cb
|
||
|
|
||
|
- name: Deploy o2cb conf
|
||
|
template: src=o2cb.j2 dest=/etc/default/o2cb
|
||
|
when: pve_ocfs2 == True
|
||
|
|
||
|
- name: Handle o2cb service
|
||
|
service: name=o2cb state=started enabled=True
|
||
|
when: pve_ocfs2 == True
|
||
|
|
||
|
- name: Deploy the unlock_dev script
|
||
|
copy: src=unlock_dev dest=/usr/local/bin/unlock_dev mode=755
|
||
|
|
||
|
- name: Check if the old hookd daemon is installed
|
||
|
stat: path=/usr/local/bin/pve-hookd
|
||
|
register: pve_old_hookd
|
||
|
|
||
|
- name: Stop the old hookd daemon
|
||
|
service: name=pve-hookd state=stopped
|
||
|
when: pve_old_hookd.stat.exists
|
||
|
|
||
|
- name: Remove the old hook daemon
|
||
|
file: path={{ item }} state=absent
|
||
|
loop:
|
||
|
- /usr/local/bin/pve-hookd
|
||
|
- /etc/hooks
|
||
|
- /etc/systemd/system/pve-hookd.service
|
||
|
- /etc/tmpfiles.d/pve-container-hooks.conf
|
||
|
- /etc/systemd/system/pve-container@.service.d/pve-container-hooks.conf
|
||
|
- /var/run/lxc/active
|
||
|
|
||
|
- name: Reload systemd
|
||
|
command: systemctl daemon-reload
|
||
|
when: pve_old_hookd.stat.exists
|
||
|
|
||
|
- include_tasks: pve_online.yml
|
||
|
when: pve_online == True
|
||
|
|
||
|
- include_tasks: ovh.yml
|
||
|
when: pve_ovh == True
|
||
|
|
||
|
- name: Create backup dir
|
||
|
file: path=/home/lbkp/pve state=directory
|
||
|
|
||
|
- name: Install pre and post backup scripts
|
||
|
copy: src={{ item.src }} dest=/etc/backup/{{ item.type }}.d/{{ item.src }} mode=755
|
||
|
with_items:
|
||
|
- src: pve_dump
|
||
|
type: pre
|
||
|
- src: pve_rm_dump
|
||
|
type: post
|
||
|
|
||
|
- name: Remove registration nag
|
||
|
patch: src=remove_nag.patch dest=/usr/share/perl5/PVE/API2/Subscription.pm
|
||
|
ignore_errors: True # Don't fail on old PVE where the patch doesn't apply
|
||
|
notify: restart pveproxy
|
||
|
|
||
|
- name: Rise limits for containers
|
||
|
pam_limits:
|
||
|
domain: '*'
|
||
|
limit_type: "{{ item.type }}"
|
||
|
limit_item: nofile
|
||
|
value: "{{ item.value }}"
|
||
|
with_items:
|
||
|
- type: soft
|
||
|
value: 65000
|
||
|
- type: hard
|
||
|
value: 65535
|
||
|
|
||
|
- name: Rise inotify instances
|
||
|
sysctl:
|
||
|
name: fs.inotify.max_user_instances
|
||
|
value: 1024
|
||
|
sysctl_file: /etc/sysctl.d/ansible.conf
|
||
|
|
||
|
- name: Ensure dehydrated hook dir exists
|
||
|
file: path=/etc/dehydrated/hooks_deploy_cert.d/ state=directory
|
||
|
|
||
|
- name: Deploy dehydrated hook
|
||
|
template: src=dehydrated_hook.sh.j2 dest=/etc/dehydrated/hooks_deploy_cert.d/20pve.sh mode=755
|
||
|
|
||
|
# See https://bugzilla.proxmox.com/show_bug.cgi?id=2326 why
|
||
|
- name: Create corosync override directory
|
||
|
file: path=/etc/systemd/system/corosync.service.d/ state=directory
|
||
|
tags: pve
|
||
|
|
||
|
- name: Setup corosync to be restarted in case of failure
|
||
|
copy:
|
||
|
content: |
|
||
|
[Service]
|
||
|
Restart=on-failure
|
||
|
RestartSec=1
|
||
|
dest: /etc/systemd/system/corosync.service.d/ansible.conf
|
||
|
register: pve_corosync_unit
|
||
|
tags: pve
|
||
|
|
||
|
- name: Reload systemd
|
||
|
systemd: daemon_reload=True
|
||
|
when: pve_corosync_unit.changed
|
||
|
tags: pve
|
||
|
|
||
|
- include: zabbix.yml
|
||
|
- include: filebeat.yml
|