Skip to content

Instantly share code, notes, and snippets.

Dmitriy Rabotyagov noonedeadpunk

View GitHub Profile
@noonedeadpunk
noonedeadpunk / diff
Created Jun 24, 2020
SPICE console ctrl+alt+del button
View diff
/usr/share/spice-html5/spice_auto.html:
<div id="login">
<span class="logo">SPICE</span>
+ <div class="spice-send-ctrl-alt-del">
+ <button type="button" onclick="sendCtrlAltDel()">
+ Send Ctrl-Alt-Delete
+ </button>
+ </div>
</div>
@noonedeadpunk
noonedeadpunk / add_1password_server.yml
Created May 21, 2020
1Password add server and ipmi playbook
View add_1password_server.yml
- name: Reset password
hosts: "{{ host }}"
vars:
ipmi_password: "{{ lookup('password', '/tmp/' ~ inventory_hostname ~ '_ipmipassword chars=ascii_letters,digits length=16') }}"
system_password: "{{ lookup('password', '/tmp/' ~ inventory_hostname ~ '_rootpassword chars=ascii_letters,digits,-,_,! length=20') }}"
tasks:
- name: install ipmitool
package:
name: ipmitool
state: present
@noonedeadpunk
noonedeadpunk / ipa-client-install.yml
Last active May 5, 2020
Add hosts to ipa server
View ipa-client-install.yml
---
- name: Install and configure ipa-client
hosts: "{{ hosts }}"
tasks:
- name: Install ipa-client package
package:
name: "{{ (ansible_os_family == 'Debian') | ternary('freeipa-client', 'ipa-client') }}"
state: installed
register: ipa_install
- name: Run configuration command
View sync-chorny.yml
---
- name: Sync clock with chrony
hosts: all
tasks:
- name: disable ntp
service:
name: ntp
state: stopped
enabled: false
failed_when: false
View create_user.yml
---
- name: Create users
hosts: all
vars:
group: mygroup
user: myuser
keys_path: ./ssh_keys
tasks:
- name: Create group
group:
View set_libvirt_cpu_quota.yml
---
- hosts: compute_hosts
gather_facts: true
vars:
cpu_quota: "{{ ansible_processor_vcpus * 100 - 200 }}%"
tasks:
- name: Update machine.slice
blockinfile:
path: /usr/lib/systemd/system/machine.slice
block: |
@noonedeadpunk
noonedeadpunk / gist:4a22b2dcc3b22fcc295445ed18c66247
Last active Dec 27, 2019
Drop rabbitmq queues without consumers
View gist:4a22b2dcc3b22fcc295445ed18c66247
### Classis FOR ###
vhost="/"; for queue in `rabbitmqctl list_queues name consumers -p $vhost --formatter csv`; do name=`echo $queue | cut -d "," -f 1 | tr -d '"'`; consumers=`echo $queue | cut -d "," -f 2 | tr -d '"'`; if [[ "$consumers" == "0" ]]; then rabbitmqctl delete_queue $name -p $vhost ; fi; done
### Faster XARGS ###
vhost="/"; rabbitmqctl list_queues name consumers -p $vhost --formatter csv | xargs -P 20 -I {} env vhost=$vhost bash -c 'name=$(echo {} | cut -d "," -f 1); consumers=$(echo {} | cut -d "," -f 2); if [[ "$consumers" != "0" ]]; then rabbitmqctl delete_queue $name -p $vhost ; fi'
View gist:9a260f23ec78676576f4b19d79a4b679
ROLES_DIR="/etc/ansible/roles/"; pushd $ROLES_DIR; ROLES=`ls -1`; popd; for role in $ROLES; do pushd $ROLES_DIR/$role; git diff; popd; done
@noonedeadpunk
noonedeadpunk / compare_conf.py
Last active Dec 12, 2019
Compare config files with configparser
View compare_conf.py
#!/usr/bin/env python
import configparser
import itertools
import sys
from pprint import pprint
def compare_confs(src, dst):
src_conf = configparser.RawConfigParser()
@noonedeadpunk
noonedeadpunk / gist:d01ba61fa2b914b4963e916caed440aa
Created Nov 13, 2019
Get ceph filestore osds in csv: osdid,node,data path,journal path
View gist:d01ba61fa2b914b4963e916caed440aa
for osd in `ceph osd tree | grep osd | awk '{ print $4 }' | cut -d '.' -f 2`; do ceph osd metadata $osd -f json | python -c "exec(\"import json\nimport sys\ndata = json.loads([ line for line in sys.stdin if line.strip()][0])\nif data['osd_objectstore'] == 'filestore':\n print(','.join([str(data['id']), data['hostname'], data['backend_filestore_partition_path'], data['backend_filestore_journal_partition_path'] if 'backend_filestore_journal_partition_path' in data else '']))\")"; done
You can’t perform that action at this time.