Маас пользовательская конфигурация для человечности

Теперь, у меня есть эта проблема с Маасом:

Я сделал пользовательскую конфигурацию для своей установки Ubuntu 16.04 (как другое разделение и конфигурация дисков необходимой в моем случае). Наши серверы имеют несколько жестких дисков с двумя из них выделенный для системы (обычно самые маленькие два). Таким образом, я создал пользовательскую конфигурацию для такой конфигурации, которая использует некоторые сценарии для определения самых маленьких двух дисков. После этого мы используем пользовательское разделение, включая создание набегов программного обеспечения. До сих пор все работает, но в некоторых случаях сбои установки на установке личинки. Вопрос: Я должен изменить конфигурацию личинки в curtin, таким образом, это могло получить правильные устройства для установки личинки или отключить раздел личинки полностью. Мой custom_userdata_ubuntu прямо сейчас похож на это:

#cloud-config
debconf_selections:
 maas: |
  {{for line in str(curtin_preseed).splitlines()}}
  {{line}}
  {{endfor}}

early_commands:
  01_get_device_list_script: wget -O /bin/list-devices http://10.7.36.1/list-devices
  02_get_smallest_drives_script: wget -O /tmp/root_disk.sh http://10.7.36.1/root_disk.sh
  03_chmod_list_devices: chmod 755 /bin/list-devices
  04_set_drive_1: /bin/bash /tmp/root_disk.sh raid1_2_disk1 >/tmp/drive1
  05_set_drive_2: /bin/bash /tmp/root_disk.sh raid1_2_disk2 >/tmp/drive2

partitioning_commands:
  builtin: []
  01_apt_get_update: apt-get update
  02_install_gdisk: apt-get -y install gdisk mdadm kpartx
  02_stop_raid_devices: for i in `ls /dev | grep -P 'md[0-9+]'`; do mdadm --stop /dev/$i; done
  02_wait_for_device_to_settle: sleep 10; echo "Devices should be settled"
  03_erase_metadata_drive_1: for i in 2 3 4 5 6 7; do mdadm --zero-superblock $(cat /tmp/drive1)${i} || /bin/true; done
  03_erase_metadata_drive_2: for i in 2 3 4 5 6 7; do mdadm --zero-superblock $(cat /tmp/drive2)${i} || /bin/true; done
  04_start_partitioning: echo Starting partitioning; sleep 10
  05_set_drive1_label: /sbin/parted $(cat /tmp/drive1) -s mklabel gpt
  06_set_drive2_label: /sbin/parted $(cat /tmp/drive2) -s mklabel gpt
  07_set_boot_part_1: /sbin/parted -s $(cat /tmp/drive1) unit s mkpart biosboot 2048 4095
  08_set_bios_boot_1: /sbin/parted -s $(cat /tmp/drive1) set 1 bios_grub on
  09_mk_swap_1: /sbin/parted -s $(cat /tmp/drive1)  mkpart primary 2098K 32G
  10_parted_mk_root_1: /sbin/parted -s $(cat /tmp/drive1) mkpart primary ext4 32G 52G
  11_parted_: /sbin/parted -s $(cat /tmp/drive1) mkpart primary ext4 52G 72G
  12_parted_: /sbin/parted -s $(cat /tmp/drive1) mkpart primary ext4 72G 92G
  13_parted_: /sbin/parted -s $(cat /tmp/drive1) mkpart primary ext4 92G 112G
  14_parted_: /sbin/parted -s $(cat /tmp/drive1) mkpart primary ext4 112G 100%
  141_start_copy_partitioning: echo Starting Partitioning copy process
  15_sgdisk_copy_table: /sbin/sgdisk -R $(cat /tmp/drive2) $(cat /tmp/drive1)
  16_sgdisk_generate_uuid: /sbin/sgdisk -G $(cat /tmp/drive2)
  17_parted_set_raid_1_2: /sbin/parted $(cat /tmp/drive1) set 2 "raid" on
  18_parted_set_raid_1_3: /sbin/parted $(cat /tmp/drive1) set 3 "raid" on
  19_parted_set_raid_1_4: /sbin/parted $(cat /tmp/drive1) set 4 "raid" on
  20_parted_set_raid_1_5: /sbin/parted $(cat /tmp/drive1) set 5 "raid" on
  21_parted_set_raid_1_6: /sbin/parted $(cat /tmp/drive1) set 6 "raid" on
  22_parted_set_raid_1_7: /sbin/parted $(cat /tmp/drive1) set 7 "raid" on
  23_parted_set_raid_2_2: /sbin/parted $(cat /tmp/drive2) set 2 "raid" on
  24_parted_set_raid_2_3: /sbin/parted $(cat /tmp/drive2) set 3 "raid" on
  25_parted_set_raid_2_4: /sbin/parted $(cat /tmp/drive2) set 4 "raid" on
  26_parted_set_raid_2_5: /sbin/parted $(cat /tmp/drive2) set 5 "raid" on
  27_parted_set_raid_2_6: /sbin/parted $(cat /tmp/drive2) set 6 "raid" on
  28_parted_set_raid_2_7: /sbin/parted $(cat /tmp/drive2) set 7 "raid" on
  28_let_devices_settle: sleep 10; echo "and again devices should be settled"
  29_mdadm_create_swap: yes | mdadm --create /dev/md0 --level=1 --force --raid-disks=2 --metadata=0.90 $(cat /tmp/drive2)2 $(cat /tmp/drive1)2
  30_mdadm_create_root: yes | mdadm --create /dev/md1 --level=1 --force --raid-disks=2 --metadata=0.90 $(cat /tmp/drive2)3 $(cat /tmp/drive1)3
  31_mdadm_create_usr:  yes | mdadm --create /dev/md2 --level=1 --force --raid-disks=2 --metadata=0.90 $(cat /tmp/drive2)4 $(cat /tmp/drive1)4
  32_mdadm_create_var:  yes | mdadm --create /dev/md3 --level=1 --force --raid-disks=2 --metadata=0.90 $(cat /tmp/drive2)5 $(cat /tmp/drive1)5
  33_mdadm_create_home: yes | mdadm --create /dev/md4 --level=1 --force --raid-disks=2 --metadata=0.90 $(cat /tmp/drive2)6 $(cat /tmp/drive1)6
  34_mdadm_create_data: yes | mdadm --create /dev/md5 --level=1 --force --raid-disks=2 --metadata=0.90 $(cat /tmp/drive2)7 $(cat /tmp/drive1)7
  35_mkswap: mkswap /dev/md0
  36_mkfs_root: mkfs -t ext4 /dev/md1
  37_mkfs_usr:  mkfs -t ext4 /dev/md2
  38_mkfs_var:  mkfs -t ext4 /dev/md3
  39_mkfs_home: mkfs -t ext4 /dev/md4
  40_mkfs_data: mkfs -t ext4 /dev/md5
  41_mount_root: mount /dev/md1 ${TARGET_MOUNT_POINT}
  42_mkdirs: mkdir ${TARGET_MOUNT_POINT}/usr ${TARGET_MOUNT_POINT}/var ${TARGET_MOUNT_POINT}/home ${TARGET_MOUNT_POINT}/data; mkdir -p ${TARGET_MOUNT_POINT}/boot/grub
  43_mount_usr: mount /dev/md2 ${TARGET_MOUNT_POINT}/usr
  44_mount_var: mount /dev/md3 ${TARGET_MOUNT_POINT}/var
  45_mount_home: mount /dev/md4 ${TARGET_MOUNT_POINT}/home
  46_mount_data: mount /dev/md5 ${TARGET_MOUNT_POINT}/data
  47_fstab_root: echo "/dev/md1 / ext4 errors=remount-ro 0 1" >> $OUTPUT_FSTAB
  48_fstab_usr:  echo "/dev/md2 /usr ext4 defaults 0 2" >> $OUTPUT_FSTAB
  49_fstab_var:  echo "/dev/md3 /var ext4 defaults 0 1" >> $OUTPUT_FSTAB
  50_fstab_home: echo "/dev/md4 /home ext4 defaults 0 2" >> $OUTPUT_FSTAB
  51_fstab_data: echo "/dev/md5 /data ext4 defaults 0 2" >> $OUTPUT_FSTAB
  52_fstab_swap: echo "/dev/md0 none swap sw 0 0" >> $OUTPUT_FSTAB
  53_make_device_map_dir: for i in 0 1 2 3 4 5; do echo "(md/$i)       /dev/md$i)" >>${TARGET_MOUNT_POINT}/boot/grub/device.map; done

swap:
  filename: swap.img
  size: 0

late_commands:
  maas: [wget, '--no-proxy', '{{node_disable_pxe_url}}', '--post-data', '{{node_disable_pxe_data}}', '-O', '/dev/null']
  40_create_grub_config: ["curtin", "in-target", "--", "sh", "-c", "/usr/sbin/grub-mkconfig -o /boot/grub/grub.cfg"]
  41_install_bootloader_drive_1: ["curtin", "in-target", "--", "sh", "-c", "grub-install $(cat /tmp/drive1)"]
  42_install_bootloader_drive_1: ["curtin", "in-target", "--", "sh", "-c", "grub-install $(cat /tmp/drive2)"]
  51_fill_mdadm: ["curtin", "in-target", "--", "sh", "-c", "mdadm --examine --scan >/etc/mdadm/mdadm.conf"]
  52_update_initramfs: ["curtin", "in-target", "--", "sh", "-c", "update-initramfs -u -k all"]

Проблема состоит в том, что в некоторых случаях, где у нас есть две системы жесткий диск и также у нас есть JBOD, включенный на сбоях установки RAID-контроллера, личинка причины, пытающаяся устанавливать себя на/dev/sda, который в этом случае не может быть системным диском, но jbod диском, который ядро установило как sda и это пусто. Там какой-либо путь состоит в том, чтобы сказать Маасу устанавливать личинку на другом диске из (или отключить личинку установки, поскольку у меня есть он в последнем разделе конфигурации)?

Также существует другой вопросы о поведении Мааса после установки, которые являются:

  1. При выпуске сервера Маас выключает его - как я отключаю такое поведение?
  2. Также после выпуска Маас не изменяет устройство загрузки от PXE, поэтому первая начальная загрузка после того, как это приводит причину к сбою, конфигурация PXE больше не существует.
  3. После успешный развертываются сервера, который Маас не показывает IP-адресу сервера в разделе интерфейсов, как мы фиксируем это?
0
задан 13 November 2017 в 04:03

1 ответ

Теперь, я просматривал код Мааса и ссылки онлайн, таким образом, я создал новую конфигурацию, возможно, кому-то понравится он. Какие работы: 1. Обнаружение самых маленьких дисков, если у нас есть два диска с тем же размером затем мы набеги программного обеспечения создания с точками монтирования для/,/usr, / var,/, размещает 2. Личинка, правильно устанавливающая себя, когда устройство не является sda/sdb.

То, что не работает, как предназначено конфигурация resolv.conf, я думаю, что это - или dnsmasq или что-то как этот, который игнорирует мою сетевую конфигурацию и помещает 127.0.0.1 в resolv.conf, изучит его все же. Также должен быть изменен на что-то как example.org, Также я добавил последние команды от своей конфигурации в этом списке (хотя я опустил некоторые из них), который добавляет факты для марионетки, марионеточного агента установки и выполняет его (после того, как марионетка, выполненная существует также killall раздел - он должен был освободить chroot среду, поскольку он приводит установку к сбою иначе, вызовите временный dir, остается занятым и не мог быть размонтирован),

#cloud-config
debconf_selections:
 maas: |
  {{for line in str(curtin_preseed).splitlines()}}
  {{line}}
  {{endfor}}


early_commands:
  01_empty_command: echo INSTALLATION STARTED
{{py:
import operator
deviceListTmp = node.blockdevice_set.all()
deviceList = sorted(deviceListTmp, key=operator.attrgetter('size'))
has_raid = False
if (len(deviceList) > 1):
   bootdrive_1 = deviceList[0]
   bootdrive_2 = deviceList[1]
   if bootdrive_1.size == bootdrive_2.size:
      has_raid = True
else:
   bootdrive_1 = deviceList[0]
}}

{{if has_raid}}
storage:
  version: 1
  config:
    - id: {{bootdrive_1.name.strip()}}
      type: disk
      ptable: gpt
      path: /dev/{{bootdrive_1.name.strip()}}
      name: boot_drive_1
      grub_device: 1
      wipe: superblock-recursive
    - id: bios_boot_partition_1
      type: partition
      size: 1MB
      device: {{bootdrive_1.name.strip()}}
      flag: bios_grub
    - id: {{bootdrive_1.name.strip()}}2
      type: partition
      size: 30G
      device: {{bootdrive_1.name.strip()}}
    - id: {{bootdrive_1.name.strip()}}3
      type: partition
      size: 19G
      device: {{bootdrive_1.name.strip()}}
    - id: {{bootdrive_1.name.strip()}}4
      type: partition
      size: 19G
      device: {{bootdrive_1.name.strip()}}
    - id: {{bootdrive_1.name.strip()}}5
      type: partition
      size: 19G
      device: {{bootdrive_1.name.strip()}}
    - id: {{bootdrive_1.name.strip()}}6
      type: partition
      size: 19G
      device: {{bootdrive_1.name.strip()}}
    - id: {{bootdrive_2.name.strip()}}
      type: disk
      ptable: gpt
      path: /dev/{{bootdrive_2.name.strip()}}
      name: boot_drive_2
      grub_device: 1
      wipe: superblock-recursive
    - id: bios_boot_partition_2
      type: partition
      size: 1MB
      device: {{bootdrive_2.name.strip()}}
      flag: bios_grub
    - id: {{bootdrive_2.name.strip()}}2
      type: partition
      size: 30G
      device: {{bootdrive_2.name.strip()}}
    - id: {{bootdrive_2.name.strip()}}3
      type: partition
      size: 19G
      device: {{bootdrive_2.name.strip()}}
    - id: {{bootdrive_2.name.strip()}}4
      type: partition
      size: 19G
      device: {{bootdrive_2.name.strip()}}
    - id: {{bootdrive_2.name.strip()}}5
      type: partition
      size: 19G
      device: {{bootdrive_2.name.strip()}}
    - id: {{bootdrive_2.name.strip()}}6
      type: partition
      size: 19G
      device: {{bootdrive_2.name.strip()}}
    - id: mddevice0
      name: md0
      type: raid
      raidlevel: 1
      devices:
        - {{bootdrive_1.name.strip()}}2
        - {{bootdrive_2.name.strip()}}2
    - id: mddevice1
      name: md1
      type: raid
      raidlevel: 1
      devices:
        - {{bootdrive_1.name.strip()}}3
        - {{bootdrive_2.name.strip()}}3
    - id: mddevice2
      name: md2
      type: raid
      raidlevel: 1
      devices:
        - {{bootdrive_1.name.strip()}}4
        - {{bootdrive_2.name.strip()}}4
    - id: mddevice3
      name: md3
      type: raid
      raidlevel: 1
      devices:
        - {{bootdrive_1.name.strip()}}5
        - {{bootdrive_2.name.strip()}}5
    - id: mddevice4
      name: md4
      type: raid
      raidlevel: 1
      devices:
        - {{bootdrive_1.name.strip()}}6
        - {{bootdrive_2.name.strip()}}6
    - id: md_swap
      type: format
      fstype: swap
      volume: mddevice0
    - id: md_root
      type: format
      fstype: ext4
      volume: mddevice1
    - id: md_usr
      type: format
      fstype: ext4
      volume: mddevice2
    - id: md_var
      type: format
      fstype: ext4
      volume: mddevice3
    - id: md_home
      type: format
      fstype: ext4
      volume: mddevice4
    - id: mount_swap
      type: mount
      device: md_swap
    - id: mount_root
      type: mount
      path: /
      device: md_root
    - id: mount_usr
      type: mount
      path: /usr
      device: md_usr
    - id: mount_var
      type: mount
      path: /var
      device: md_var
    - id: mount_home
      type: mount
      path: /home
      device: md_home

grub:
  install_devices:
    - /dev/{{bootdrive_1.name.strip()}}
    - /dev/{{bootdrive_2.name.strip()}}
{{else}}
storage:
  version: 1
  config:
    - id: {{bootdrive_1.name.strip()}}
      type: disk
      ptable: gpt
      path: /dev/{{bootdrive_1.name.strip()}}
      name: boot_drive_1
      grub_device: 1
      wipe: superblock-recursive
    - id: bios_boot_partition
      type: partition
      size: 1MB
      device: {{bootdrive_1.name.strip()}}
      flag: bios_grub
    - id: {{bootdrive_1.name.strip()}}2
      type: partition
      size: 30G
      device: {{bootdrive_1.name.strip()}}
    - id: {{bootdrive_1.name.strip()}}3
      type: partition
      size: 19G
      device: {{bootdrive_1.name.strip()}}
    - id: {{bootdrive_1.name.strip()}}4
      type: partition
      size: 19G
      device: {{bootdrive_1.name.strip()}}
    - id: {{bootdrive_1.name.strip()}}5
      type: partition
      size: 19G
      device: {{bootdrive_1.name.strip()}}
    - id: {{bootdrive_1.name.strip()}}6
      type: partition
      size: 19G
      device: {{bootdrive_1.name.strip()}}
    - id: fs_swap
      type: format
      fstype: swap
      volume: {{bootdrive_1.name.strip()}}2
    - id: fs_root
      type: format
      fstype: ext4
      volume: {{bootdrive_1.name.strip()}}3
    - id: fs_usr
      type: format
      fstype: ext4
      volume: {{bootdrive_1.name.strip()}}4
    - id: fs_var
      type: format
      fstype: ext4
      volume: {{bootdrive_1.name.strip()}}5
    - id: fs_home
      type: format
      fstype: ext4
      volume: {{bootdrive_1.name.strip()}}6
    - id: mount_swap
      type: mount
      device: fs_swap
    - id: mount_root
      type: mount
      path: /
      device: fs_root
    - id: mount_usr
      type: mount
      path: /usr
      device: fs_usr
    - id: mount_var
      type: mount
      path: /var
      device: fs_var
    - id: mount_home
      type: mount
      path: /home
      device: fs_home

grub:
  install_devices:
    - /dev/{{bootdrive_1.name.strip()}}
{{endif}}

network:
  version: 1
  config:
    - type: nameserver
      address:
        - 10.121.10.1
        - 192.168.121.1
      search:
        - <domainname>


swap:
  filename: swap.img
  size: 0

late_commands:
  12_reconfigure_openssh: ["curtin", "in-target", "--", "sh", "-c", "dpkg-reconfigure openssh-server"]
  13_add_puppet_key: ["curtin", "in-target", "--", "sh", "-c", "wget -O /tmp/puppet.key http://apt.puppetlabs.com/DEB-GPG-KEY-puppet && apt-key add /tmp/puppet.key"]
  14_add_puppet_repo: ["curtin", "in-target", "--", "sh", "-c", "echo 'deb http://apt.puppetlabs.com xenial PC1' >/etc/apt/sources.list.d/puppetlabs-pc1.list && apt-get update"]
  15_run_fix: ["curtin", "in-target", "--", "sh", "-c", "apt-get -y -f install"]
  18_install_puppet_and_requrements: ["curtin", "in-target", "--", "sh", "-c", "apt-get -y install puppet-agent lsof jq ipmiutil wget python-requests parted strace tcpdump mc net-tools lsb-release"]
  20_add_team_fact: ["curtin", "in-target", "--", "sh", "-c", "wget -O /tmp/smdb_data.py http://10.7.36.1/smdb_data.py && python /tmp/smdb_data.py && rm -f /tmp/smdb_data.py"]
  21_run_puppet: ["curtin", "in-target", "--", "sh", "-c", "/opt/puppetlabs/bin/puppet agent -t --server puppet4.<domain>; killall -9 splunkd; killall -9 zabbix_agentd; killall -9 mdadm; lsof /proc"]
  22_display_network_config: cat $OUTPUT_NETWORK_CONFIG
0
ответ дан 1 November 2019 в 05:37

Другие вопросы по тегам:

Похожие вопросы: