This bash script is based from this

https://omarbenchbana.com/en/ubuntu-18-10-with-apache-preinstalled/
First save build.sh with its source

build.sh


wget http://cdimage.ubuntu.com/ubuntu-budgie/releases/18.10/release/ubuntu-budgie-18.10-desktop-amd64.iso -4
export iso_file=ubuntu-budgie-18.10-desktop-amd64.iso
mkdir mnt
sudo mount -o loop ${iso_file} mnt/
mkdir extract-cd
sudo rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract-cd
mkdir squashfs
sudo unsquashfs mnt/casper/filesystem.squashfs
sudo mv squashfs-root edit
sudo mount --bind /dev/ edit/dev
sudo cp  startup.sh edit/usr/bin/
sudo chmod +x edit/usr/bin/startup.sh
sudo chroot edit /bin/bash -c "su - -c startup.sh"
sudo rm edit/usr/bin/startup.sh
sudo umount edit/dev
sudo echo "php" >> extract-cd/preseed/ubuntu-budgie.seed
sudo chmod +w extract-cd/casper/filesystem.manifest
sudo chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' > extract-cd/casper/filesystem.manifest
sudo mksquashfs edit extract-cd/casper/filesystem.squashfs
export output_file=ubuntu-budgie-18.10-desktop-apache-remix-amd64.iso

#export IMAGE_NAME="Ubuntu Budgie 18.10"
#sudo sed -i -e "s/$IMAGE_NAME/$IMAGE_NAME (Apache Remix)/" extract-cd/README.diskdefines
#sudo sed -i -e "s/$IMAGE_NAME/$IMAGE_NAME (Apache Remix)/" extract-cd/.disk/info
cd extract-cd
sudo rm -f md5sum.txt
(find -type f -print0 | xargs -0 md5sum | grep -v isolinux/boot.cat | sudo tee ../md5sum.txt)
mv -f ../md5sum.txt ./
# If the following is not done, causes an error in the boot menu disk check option
sed -i -e '/isolinux/d' md5sum.txt
export IMAGE_NAME="Ubuntu Budgie 18.04 apache-remix amd64"
genisoimage -r -V "Ubuntu Budgie 18.10" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot -o ../${output_file} .
cd ..
isohybrid --uefi ubuntu-budgie-18.10-desktop-apache-remix-amd64.iso
umount squashfs/
umount mnt/
exit
echo "done"

startup.sh

then save startup.sh with the source below


mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts
export HOME=/root
export LC_ALL=C
echo "nameserver 1.1.1.1" >> /run/systemd/resolve/stub-resolv.conf
sudo apt update && sudo apt upgrade
sudo apt install php-fpm php
apt clean
rm -rf /tmp/*
rm -rf /var/cache/apt-xapian-index/*
rm -rf /var/lib/apt/lists/*
umount /proc
umount /sys
umount /dev/pts

now run with sudo bash build.sh and wait 15-30 minutes and you will have your own ubuntu iso

Refer this for inital setup

https://omarbenchbana.com/en/salt-with-nginx-php-fpm-and-ufw/
and this first current setup
https://github.com/obb12/pcs

first let install virtualbox

virtualbox:
  pkg.installed
vagrant:
  pkg.installed
'vagrant init bento/ubuntu-10.04':
  cmd.run
'vagrant up'
  cmd.run

Lets first upload our salt repo to github

git init
git add .
git commit -m "first commit"
git remote add origin https://github.com/username/repo
got push -u origin master

Next i added git to the config


 git:
   pkg.installed
'git config --global user.name "Mona Lisa"':
  cmd.run

Heres the ouput of git log


commit c7898d83ffacc488f39e6b502673cc82b3af69a4 (HEAD -> master, origin/master)
Author: Your Name 
Date:   Thu Nov 15 08:51:45 2018 +0200

    hellO

commit 3af2c3db62fa207099cc2cd8676e8d3051f6c159
Author: Your Name 
Date:   Thu Nov 15 08:36:13 2018 +0200

    hellO

heres the output of git blame top.sls


^3af2c3d (Your Name 2018-11-15 08:36:13 +0200  1) base:
^3af2c3d (Your Name 2018-11-15 08:36:13 +0200  2)   'pc':
^3af2c3d (Your Name 2018-11-15 08:36:13 +0200  3)     - firewall
^3af2c3d (Your Name 2018-11-15 08:36:13 +0200  4)     - apache
^3af2c3d (Your Name 2018-11-15 08:36:13 +0200  5)     - ssh
^3af2c3d (Your Name 2018-11-15 08:36:13 +0200  6)     - git
^3af2c3d (Your Name 2018-11-15 08:36:13 +0200  7)   'manjaro':
^3af2c3d (Your Name 2018-11-15 08:36:13 +0200  8)     - firewall
^3af2c3d (Your Name 2018-11-15 08:36:13 +0200  9)     - nginx
^3af2c3d (Your Name 2018-11-15 08:36:13 +0200 10)     - git

I made a .gitignore
file with the following contents


*.sls

i ran git reset --hard
to remove this gitignore file

This is Thursday’s Assigment

Refer this for inital setup

https://omarbenchbana.com/en/salt-with-nginx-php-fpm-and-ufw/

First configure your salt to include the sshd_config

sudoedit /srv/salt/ssh/init.sls

https://raw.githubusercontent.com/obb12/apache-server/master/ssh.sls
then change your port in the config

sudoedit /srv/salts/ssh/sshd_config

https://raw.githubusercontent.com/obb12/apache-server/master/sshd_config

Next configure apache

sudoedit /srv/salt/apache/init.sls

apache2:
 pkg.installed

/var/www/html/index.html:
 file.managed:
   - source: salt://apache/default-index.html

/etc/apache2/mods-enabled/userdir.conf:
 file.symlink:
   - target: ../mods-available/userdir.conf

/etc/apache2/mods-enabled/userdir.load:
 file.symlink:
   - target: ../mods-available/userdir.load

apache2service:
 service.running:
   - name: apache2
   - watch:
     - file: /etc/apache2/mods-enabled/userdir.conf
     - file: /etc/apache2/mods-enabled/userdir.load
     


Next enable cgi-bin scripts



install_apache:
   pkg.installed:
     - pkgs:
       - apache2
       - php-fpm
       - composer
/etc/apache2/mods-enabled/userdir.conf:
 file.symlink:
   - target: ../mods-available/userdir.conf
/usr/lib/cgi-bin/test.pl:
 file.managed:
   - source: salt://apache/test.pl
/etc/apache2/mods-enabled/userdir.load:
 file.symlink:
   - target: ../mods-available/userdir.load
/etc/apache2/mods-enabled/userdir.conf:
 file.symlink:
   - target: ../mods-available/userdir.conf

/etc/apache2/mods-enabled/cgid.load:
 file.symlink:
   - target: ../mods-available/cgid.load
/etc/apache2/mods-enabled/cgid.conf:
 file.symlink:
   - target: ../mods-available/cgid.conf

apache2service:
 service.running:
   - name: apache2
   - watch:
     - file: /etc/apache2/mods-enabled/userdir.conf
     - file: /etc/apache2/mods-enabled/userdir.load
     - file: /etc/apache2/mods-enabled/cgid.load
     - file: /etc/apache2/mods-enabled/cgid.conf

Write your Cgi script


 /srv/salt/apache/test.pl

#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "Hello, World.";


first update your system

sudo pacman -Syu 

Reboot your system

next install the required tools

sudo pacman -Syu manjaro-tools-iso manjaro-iso-profiles-official

Edit the Packages-Desktop file

sudo nano /usr/share/manjaro-tools/iso-profiles/official/xfce/Packages-Desktop
## Php server
php 
apache

Compile the iso

 buildiso -p xfce

Select yes and wait

Clean your system

sudo rm -r /var/lib/manjaro-tools/buildiso/
paccache -ruk0

sources


  1. https://wiki.manjaro.org/Build_Manjaro_ISOs_with_buildiso