index : archinstall32 | |
Archlinux32 installer | gitolite user |
summaryrefslogtreecommitdiff |
author | Dylan M. Taylor <dylan@dylanmtaylor.com> | 2021-04-09 09:55:16 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-09 09:55:16 -0400 |
commit | 8f48e1ac697b00eff4d2d6e3cbcd7686ecc3bd3f (patch) | |
tree | e1e57bda2ccfb7109e9d7f93349b62b7fde398e3 /README.md | |
parent | 057f9cd0281e7dd7fcda0c6d7b1927b23d33b0ce (diff) |
-rw-r--r-- | README.md | 63 |
@@ -66,6 +66,69 @@ This installer will perform the following: > **Creating your own ISO with this script on it:** Follow [ArchISO](https://wiki.archlinux.org/index.php/archiso)'s guide on how to create your own ISO or use a pre-built [guided ISO](https://hvornum.se/archiso/) to skip the python installation step, or to create auto-installing ISO templates. Further down are examples and cheat sheets on how to create different live ISO's. +## Unattended installation based on MAC address + +It is possible to add a file in the profiles directory that will automatically run when launching archinstall using the unattended mode if the MAC address of the system matches the profile name. In the following example, this profile would go into a file called `profiles/52-54-00-12-34-56.py`: + +``` +import archinstall +import json +import urllib.request +import git + +# Unmount and close previous runs (Mainly only used for re-runs, but won't hurt.) +archinstall.sys_command(f'umount -R /mnt', suppress_errors=True) +archinstall.sys_command(f'cryptsetup close /dev/mapper/luksloop', suppress_errors=True) + +# Select a harddrive and a disk password +harddrive = archinstall.all_disks()['/dev/sda'] +disk_password = '1234' + +with archinstall.Filesystem(harddrive, archinstall.GPT) as fs: + # Use the entire disk instead of setting up partitions on your own + fs.use_entire_disk('luks2') + + if harddrive.partition[1].size == '512M': + raise OSError('Trying to encrypt the boot partition for petes sake..') + harddrive.partition[0].format('fat32') + + with archinstall.luks2(harddrive.partition[1], 'luksloop', disk_password) as unlocked_device: + unlocked_device.format('btrfs') + + with archinstall.Installer( + unlocked_device, + boot_partition=harddrive.partition[0], + hostname="testmachine" + ) as installation: + if installation.minimal_installation(): + installation.add_bootloader() + + installation.add_additional_packages(['nano', 'wget', 'git']) + installation.install_profile('minimum') + + installation.user_create('devel', 'devel') + installation.user_set_pw('root', 'toor') + + repo = git.Repo('./') + commit = repo.head.commit.hexsha[:7] + + print(f'Submitting {commit}: success') + + conditions = { + "project": "archinstall", + "profile": "52-54-00-12-34-56", + "status": "success", + "commit": commit + } + req = urllib.request.Request("https://api.archlinux.life/build/success", + data=json.dumps(conditions).encode('utf8'), + headers={'content-type': 'application/json'}) + try: + urllib.request.urlopen(req, timeout=5) + except: + pass +``` + # Help Submit an issue on Github, or submit a post in the discord help channel.<br> |