Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan M. Taylor <dylan@dylanmtaylor.com>2021-04-09 09:55:16 -0400
committerGitHub <noreply@github.com>2021-04-09 09:55:16 -0400
commit8f48e1ac697b00eff4d2d6e3cbcd7686ecc3bd3f (patch)
treee1e57bda2ccfb7109e9d7f93349b62b7fde398e3
parent057f9cd0281e7dd7fcda0c6d7b1927b23d33b0ce (diff)
Update README.md
-rw-r--r--README.md63
1 files changed, 63 insertions, 0 deletions
diff --git a/README.md b/README.md
index 2f3881e1..8285d7e3 100644
--- a/README.md
+++ b/README.md
@@ -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>