{"action":"created","issue":{"url":"https://api.github.com/repos/rear/rear/issues/732","labels_url":"https://api.github.com/repos/rear/rear/issues/732/labels{/name}","comments_url":"https://api.github.com/repos/rear/rear/issues/732/comments","events_url":"https://api.github.com/repos/rear/rear/issues/732/events","html_url":"https://github.com/rear/rear/issues/732","id":120421154,"number":732,"title":"SUSE Hack Week 13: Use rear as generic installer in the plain SUSE installation system","user":{"login":"jsmeix","id":1788608,"avatar_url":"https://avatars.githubusercontent.com/u/1788608?v=3","gravatar_id":"","url":"https://api.github.com/users/jsmeix","html_url":"https://github.com/jsmeix","followers_url":"https://api.github.com/users/jsmeix/followers","following_url":"https://api.github.com/users/jsmeix/following{/other_user}","gists_url":"https://api.github.com/users/jsmeix/gists{/gist_id}","starred_url":"https://api.github.com/users/jsmeix/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jsmeix/subscriptions","organizations_url":"https://api.github.com/users/jsmeix/orgs","repos_url":"https://api.github.com/users/jsmeix/repos","events_url":"https://api.github.com/users/jsmeix/events{/privacy}","received_events_url":"https://api.github.com/users/jsmeix/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/rear/rear/labels/discuss","name":"discuss","color":"ffa500"},{"url":"https://api.github.com/repos/rear/rear/labels/enhancement","name":"enhancement","color":"02e10c"},{"url":"https://api.github.com/repos/rear/rear/labels/waiting%20for%20feedback","name":"waiting for feedback","color":"444444"}],"state":"open","locked":false,"assignee":{"login":"jsmeix","id":1788608,"avatar_url":"https://avatars.githubusercontent.com/u/1788608?v=3","gravatar_id":"","url":"https://api.github.com/users/jsmeix","html_url":"https://github.com/jsmeix","followers_url":"https://api.github.com/users/jsmeix/followers","following_url":"https://api.github.com/users/jsmeix/following{/other_user}","gists_url":"https://api.github.com/users/jsmeix/gists{/gist_id}","starred_url":"https://api.github.com/users/jsmeix/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jsmeix/subscriptions","organizations_url":"https://api.github.com/users/jsmeix/orgs","repos_url":"https://api.github.com/users/jsmeix/repos","events_url":"https://api.github.com/users/jsmeix/events{/privacy}","received_events_url":"https://api.github.com/users/jsmeix/received_events","type":"User","site_admin":false},"milestone":null,"comments":7,"created_at":"2015-12-04T15:16:01Z","updated_at":"2015-12-10T07:59:25Z","closed_at":null,"body":"During SUSE Hack Week 13 I will imlement to use rear\r\nas generic installer in the plain SUSE installation system.\r\n\r\nSee\r\nhttps://hackweek.suse.com/13/projects/1190\r\n\r\nI think I can add functionality to rear so that it can be used as generic installer without any incompatible changes.\r\n\r\nMy current plan:\r\n\r\nI add a separated new workflow \"install\" where install-workflow.sh\r\nis derived from recover-workflow.sh as follows:\r\n\r\nThe stages of the install workflow are the same as the stages of the recover workflow\r\n\r\n- SourceStage \"restore\" is replaced with a new SourceStage \"install\" that installs software packages (RPMs)\r\n\r\n- after SourceStage \"install\" there is the additional new SourceStage \"configure\" that does the very basic configuration that is needed so that the system can boot (i.e. bootloader configuration and bootloader installation) and that 'root' can log in (i.e. set 'root' password and very basic networking setup like starting dhcpd and sshd).\r\n\r\n- there is no longer the SourceStage \"finalize\" that installed the boot loader because that already happened in SourceStage \"configure\"\r\n\r\nBasically usr/share/rear/lib/install-workflow.sh is something like\r\n<pre>\r\nfunction WORKFLOW_install () {\r\n    SourceStage \"setup\"\r\n    SourceStage \"verify\"\r\n    # Set up persistent storage (disk partitioning with filesystems and mount points):\r\n    SourceStage \"layout/prepare\"\r\n    SourceStage \"layout/recreate\"\r\n    # Dump the payload into the persistent storage (install files).\r\n    # Usually \"dump the payload\" means to install software packages:\r\n    SourceStage \"install\"\r\n    # Basic system configuration so that it can boot\r\n    # (i.e. boot loader configuration and creating etc/fstab)\r\n    # and that 'root' can log in (i.e. initial temporary root password,\r\n    # keyboard layout, basic networking like dhcpd plus sshd running):\r\n    SourceStage \"configure\"\r\n    # Prepare for reboot:\r\n    SourceStage \"wrapup\"\r\n}\r\n</pre>\r\n\r\nWith the rear framework (in particular with appropriate usr/share/rear/install/default/50_install_software_packages.sh and usr/share/rear/configure/default/50_basic_configuration.sh scripts that implement the stages \"install\" and \"configure\") and an appropriate /etc/rear/disklayout.conf in the installation system, running \"rear install\" in the installation system should install the system from scratch.\r\n\r\nI think I do not need to change any existing script in an incompatible way - I even hope I do not need to change any existing script at all - so that I can add the \"install\" functionality without any possible regression elsewhere.\r\n"},"comment":{"url":"https://api.github.com/repos/rear/rear/issues/comments/163527877","html_url":"https://github.com/rear/rear/issues/732#issuecomment-163527877","issue_url":"https://api.github.com/repos/rear/rear/issues/732","id":163527877,"user":{"login":"jsmeix","id":1788608,"avatar_url":"https://avatars.githubusercontent.com/u/1788608?v=3","gravatar_id":"","url":"https://api.github.com/users/jsmeix","html_url":"https://github.com/jsmeix","followers_url":"https://api.github.com/users/jsmeix/followers","following_url":"https://api.github.com/users/jsmeix/following{/other_user}","gists_url":"https://api.github.com/users/jsmeix/gists{/gist_id}","starred_url":"https://api.github.com/users/jsmeix/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jsmeix/subscriptions","organizations_url":"https://api.github.com/users/jsmeix/orgs","repos_url":"https://api.github.com/users/jsmeix/repos","events_url":"https://api.github.com/users/jsmeix/events{/privacy}","received_events_url":"https://api.github.com/users/jsmeix/received_events","type":"User","site_admin":false},"created_at":"2015-12-10T07:59:25Z","updated_at":"2015-12-10T07:59:25Z","body":"I know that both my scripts are currently plain wrong in \"default\"\r\nand in particular the basic_configuration script needs to be split\r\ninto its separated parts and much more things like that.\r\n\r\nAs long as I did not make a pull request I consider all my stuff as\r\ntotally tentative and experimental.\r\n\r\nMy next steps will be to implement the current SUSE-specific install\r\nworkflow properly so that I think it could be accepted by upstream\r\nas a SUSE-specific first step enhancement towards a generic\r\ninstall workflow and then I will make a pull request.\r\n\r\nNote that my current install workflow does not change any existing\r\nfile in rear which means it cannot cause regressions.\r\n"}}