Helix

joined 4 years ago
MODERATOR OF
[–] [email protected] 6 points 2 years ago (3 children)

Generally, "dip" carries the connotation that there will be a rebound, or a return to the original position. A "drop" however would mean that this would hurt the company in the long run.

[–] [email protected] 1 points 2 years ago

You can use the WSL2 to run Ansible on Windows. If that is already scary to you I wouldn't recommend running insecure beta software with internet access.

[–] [email protected] 10 points 2 years ago* (last edited 2 years ago) (5 children)

It's a dip, not a drop. Maybe you want to mitigate the sensationalist headline.

[–] [email protected] 2 points 2 years ago* (last edited 2 years ago) (1 children)

Installing Docker on a QNAP device is straightforward, thanks to the integrated Container Station application. Here's how you can do it:

  1. Install Container Station: Log in to your QNAP device's web interface (QTS), and open the App Center. Search for "Container Station" and install it.

  2. Enable SSH: If you need SSH access, go to the Control Panel > Telnet / SSH, and enable the "Allow SSH connection" option. Click "Apply" to save the changes.

  3. Create a Docker Container: Once Container Station is installed, you can create Docker containers using the Container Station user interface. Go to 'Containers', click 'Create', and select an image from the available registries.

  4. Configure Network Settings: Container Station supports multiple network modes and VLAN for flexible deployment. You can manage these settings according to your need.

  5. Manage Containers: After creating your Docker containers, you can manage them through the Container Station interface, where you can start, stop, and configure your containers as needed.

For detailed instructions and the latest updates, refer to the official QNAP Container Station guide. It provides comprehensive information on using Container Station, including creating, managing, and deploying Docker containers.

[–] [email protected] 4 points 2 years ago (1 children)

Ey das historisch gewachsen, wir ziehen vielleicht bald um

[–] [email protected] 5 points 2 years ago (5 children)

You should be able to run syncthing in docker on qnap. Which model and software version is it?

Keep in mind that sync is not a backup, neither is RAID.

[–] [email protected] 6 points 2 years ago (3 children)

Waren ja nur 14 Stunden :p

[–] [email protected] 2 points 2 years ago

6-7 years in sysadmin, IT consulting and coding each.

[–] [email protected] 4 points 2 years ago

If you do multiple passes you can alleviate some of the downsides of low bitrates. You can always easily spot it in dark areas. I despise watching space movies or shows on streaming services because of the resulting excessive banding artifacts.

[–] [email protected] 17 points 2 years ago* (last edited 2 years ago) (2 children)

Anekdotisch interessant: Leute mit Geburtsdatum nach 2000 (EDIT: viele, die ich kennen gelernt habe) vertippen sich oft (EDIT: auf physischen Tastaturen) und sind sehr langsam. Touch-Oberflächen mit riesen Buttons können sie sehr gut bedienen, aber wenn man viel Text lesen muss, hört es auf.

Das ist immer doof wenn man Junioren denselben Fehler, den sie aus ChatGPT abgeschrieben haben, wiederholt korrigieren muss. Habe das Gefühl die kontrollieren sich gar nicht mehr selbst.

Man muss aber sagen, dass jede Generation über ihre Vorgänger und Nachfolger schimpft. Wir waren alle mal jung und dumm und wir werden alle alt und zurück geblieben sein. So will es der Lauf der Zeit.

[–] [email protected] 1 points 2 years ago

Since I got older this got better. One benefit I guess?

 

For developers, there is no debate. The future of the database is open source. A glance at the 2022 Stack Overflow survey of around 70,000 code-wranglers shows nearly all pros use one of the two leading open source RDBMSes, PostgreSQL (46.5 percent) or MySQL (45.7 percent), although they use other systems as well.

 

Build of Proton with the most recent bleeding-edge proton experimental WINE.

Things it contains that Valve's proton does not:

  • DXVK patched with Async, which can be toggled with DXVK_ASYNC=1
  • Additional media foundation patches for better video playback support
  • AMD FSR patches added directly to fullscreen hack that can be toggled with WINE_FULLSCREEN_FSR=1
  • FSR Fake resolution patch (details here: #52)
  • Nvidia CUDA support for phsyx and nvapi
  • Raw input mouse support
  • Fix for Mech Warrior Online
  • Fix for Asseto Corsa HUD
  • Fix for MK11 crash in single player
  • Fix for Killer Instinct Vulkan related crash
  • Fix for Cities XXL patches
  • 'protonfixes' system -- this is an automated system that applies per-game fixes (such as winetricks, envvars, EAC workarounds, overrides, etc).
  • Various upstream WINE patches backported
  • Various wine-staging patches applied as they become needed
 

Bei einer privaten Veranstaltung liefen mehrere Personen über glühende Kohlen. Die Sanität musste mit einem Grossaufgebot ausrücken, mehr als die Hälfte der Personen mussten hospitalisiert werden.

 

Hi guys,

I have the following variable in Ansible:

additional_lvm_disks:
  persistent:
    device: xvdb
    part: 1
    crypt: yes
    logical_volumes:
      persistent_data:
        size: 100%VG
        mount: /data
  volatile_hdd:
    device: xvdc
    part: 1
    crypt: yes
    logical_volumes:
      var_cache:
        size: 50%VG
        mount: /var/cache
      var_log:
        size: 50%VG
        mount: /var/log
  volatile_ssd:
    device: xvde
    part: 1
    crypt: yes
    logical_volumes:
      tmp:
        size: 30%VG
        mount: /tmp
      volatile_data:
        size: 70%VG
        mount: /media/volatile_data

Now I want to iterate over this structure and create encrypted disks with an LVM on top. I named the PVs according to the keys, so I came up with this (which, obviously, does not work properly):

- name: Install parted
  apt:
    name: [ 'parted' ]
    state: present

- name: Install lvm2 dependency
  package:
    name: lvm2
    state: present

- name: list the devices and mounts being specified
  debug:
    msg: "{{ item.device }} - {{ item.mount }}"
  with_items: "{{ var_devices_mounts }}"

- name: Check if devices exist
  fail:
    msg: "device {{ item.value.device }} does not exist or is corrupted }} "
  when: ansible_facts['devices'][item.value.device]['size'] | length == 0
  loop: "{{ lookup('dict', additional_lvm_disks) }}"

- name: Check Secret File Creation
  command: sh -c "dd if=/dev/urandom of={{ var_keyfile_path }} bs=1024 count=4"
  args:
    chdir:   "{{ var_keyfile_dir }}"
    creates: "{{ var_keyfile_path }}"

- name: Check Secret File Permissions
  file:
    state: file
    path:  "{{ var_keyfile_path }}"
    owner: root
    group: root
    mode:  "0400"

- name: Create Partition
  parted:
    device: "/dev/{{ item.value.device }}"
    number: 1
    flags: [ lvm ]
    state: present
  loop: "{{ lookup('dict', additional_lvm_disks) }}"

- name: Create LUKS container with a passphrase
  luks_device:
    device: "/dev/{{ item.value.device }}1"
    state: "present"
    passphrase: "123456789"
  loop: "{{ lookup('dict', additional_lvm_disks) }}"

- name: Add keyfile to the LUKS container
  luks_device:
    device: "/dev/{{ item.value.device }}1"
    new_keyfile: "{{ var_keyfile_path }}"
    passphrase: "123456789"
  loop: "{{ lookup('dict', additional_lvm_disks) }}"

- name: (Create and) open LUKS container
  luks_device:
    device: "/dev/{{ item.value.device }}1"
    state: "opened"
    name: "{{ item.value.device }}1_crypt"
    keyfile: "{{ var_keyfile_path }}"
  loop: "{{ lookup('dict', additional_lvm_disks) }}"

- name: Set the options explicitly a device which must already exist
  crypttab:
    name: "{{ item.value.device }}1_crypt"
    backing_device: "/dev/{{ item.value.device }}1"
    state: present
    password: "{{ var_keyfile_path }}"
    opts: luks
  loop: "{{ lookup('dict', additional_lvm_disks) }}"

- name: Creating Volume Group
  lvg:
    vg: "{{ item.key }}"
    pvs: "/dev/mapper/{{ item.value.device }}1_crypt"
  loop: "{{ lookup('dict', additional_lvm_disks) }}"

- name: Creating Logical Volume
  lvol:
    vg: "{{ item.value.volume_group }}"
    lv:  "{{ item.key }}"
    size: 100%VG
  loop: "{{ lookup('dict', (additional_lvm_disks | dict2items | combine(recursive=True, list_merge='append')).value.logical_volumes) }}"

- name: create directorie(s)
  file:
    path: "{{ item.value.mount }}"
    state: directory
  loop: "{{ lookup('dict', (additional_lvm_disks | dict2items | combine(recursive=True, list_merge='append')).value.logical_volumes) }}"

- name: format the ext4 filesystem
  filesystem:
    fstype: ext4
    dev: "/dev/{{ item.value.volume_group }}/{{ item.key }}"
  loop: "{{ lookup('dict', (additional_lvm_disks | dict2items | combine(recursive=True, list_merge='append')).value.logical_volumes) }}"

- name: mount the lv
  mount:
    path: "{{ item.value.mount }}"
    src: "/dev/{{ item.value.volume_group }}/{{ item.key }}"
    fstype: ext4
    state: mounted
  loop: "{{ lookup('dict', (additional_lvm_disks | dict2items | combine(recursive=True, list_merge='append')).value.logical_volumes) }}"

I found that I probably need the product filter for a loop to create a cartesian product of all the volume groups and their disks as well as all the logical volumes and their volume groups, the latter looking something like this:

- { volume_group: volatile_hdd, logical_volume: var_cache, size: 50%VG }
- { volume_group: volatile_hdd, logical_volume: var_log, size: 50%VG }

Sadly I can't wrap my head around this and there are no good tutorials or examples I could find.

How do I iterate over the "monster dictionary" above to get what I want?

 

I resized my LVM LV with lvextend -L +32G -r root because lvextend -r doesn't work with btrfs apparently. This seems to have worked because I got Size of logical volume desktop/root changed from 32,00 GiB (8192 extents) to 64,00 GiB (16384 extents). and lvdisplay shows the correct size (64GiB).

Then I did btrfs filesystem resize max / which told me Resize device id 1 (/dev/mapper/root) from 31.98GiB to max – it's still 32GB when I do findmnt -sD or btrfs fi sh / though.

What am I doing wrong?

 

Ein Kassierer weist einen Kunden auf die Maskenpflicht hin. Dann soll der eine Waffe geholt und den Mann erschossen haben. Für einen Verfassungsschützer kommt die Attacke nicht überraschend.

Idar-Oberstein - Nach einer tödlichen Attacke auf einen Tankstellen-Kassierer im Streit über das Tragen einer Corona-Maske gehen die Ermittlungen gegen den 49 Jahre alten Tatverdächtigen weiter.

Der Mann ist nach Angaben von Oberstaatsanwalt Kai Fuhrmann bislang polizeilich nicht in Erscheinung getreten. Er soll dem 20-jährigen Verkäufer in Idar-Oberstein (Rheinland-Pfalz) am Samstagabend in den Kopf geschossen haben, nachdem dieser ihn beim Bierkauf zwei Mal auf die Maskenpflicht hingewiesen habe.

 

What things do you use the most which made your life more bearable? Where did you get it?

view more: ‹ prev next ›