Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/README.md
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 /README.md
parent057f9cd0281e7dd7fcda0c6d7b1927b23d33b0ce (diff)
Update README.md
Diffstat (limited to '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>