Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Install an OS automatically in a predefined manner. #2229

Open
tjpark88 opened this issue Nov 8, 2023 · 5 comments
Open

Install an OS automatically in a predefined manner. #2229

tjpark88 opened this issue Nov 8, 2023 · 5 comments

Comments

@tjpark88
Copy link
Contributor

tjpark88 commented Nov 8, 2023

Is your feature request related to a problem? Please describe.
To install an OS interacting with a GUI is good enough for a user who manages only one or two desktops.
However, it is a time consuming job interacting with a GUI for a manager who installs the same OS with the same options.

Describe the solution you'd like
I suggest that calamares as an one-click installer that installs without any user interactions using predefined configurations.
Predefined options may be described by existing conf files like /etc/calamares/settings.conf and /etc/calamares/modules/.conf in calamares-settings-debian.

My rough design is as follows.

  • Create new job modules from existing view modules (welcome, locale, keyboard, partition, users) which have interactive GUIs.
  • Remove the first phase of "-show:" in "sequence:" in the /etc/calamares/settings.conf.
  • Add job modules that we made in "-exec:".

Describe alternatives you've considered
Creating new job modules would be a kind of time consuming job, hence this could be an option:
If the next button in the step is enabled, call ViewManager::next() to progress the next step automatically.
This can be done by adding a line connect( step, &ViewStep::nextStatusChanged, this, &ViewManager::next() of ViewManager::insertViewStep and changing a ViewManager to cope with a status of a next button.
But with this design, ViewManager which is core part of calamares should be changed.

Additional context
No additional comments.

@adriaandegroot
Copy link
Contributor

See #1655 #1362 (both open) and #466 (closed) for some previous thoughts on the topic. There might have been an issue filed for kickstart-like support, but I can't find it.

Basically, if you can load a job's configuration -- the whole configuration, e.g. also what it would do from user interaction -- then you can run the jobs in the exec phase and you could do something along the lines of showing just "welcome" and "summary", followed by the installation -- two-click installs.

@tjpark88
Copy link
Contributor Author

tjpark88 commented Nov 9, 2023

Thank you for your advice.

I got a inspiration from #1655.
I read #1362, I guess it is a human error that -locale is not included in "-show:" and only included in "-exec".
And for #466, link of CAL-358: Support automating the installation with kickstart files does not work (404 NOT FOUND).

As a test, I created a job module "predefined-users" from a view module "users".
And it works!

If I raise the issue, should I PR commits? or can someone solve this problem?

@dalto8
Copy link
Contributor

dalto8 commented Nov 9, 2023

I don't think we should create new modules. Ideally, we should automate the existing modules so we only have to maintain a single code base.

@tjpark88
Copy link
Contributor Author

tjpark88 commented Nov 9, 2023

I don't think we should create new modules. Ideally, we should automate the existing modules so we only have to maintain a single code base.

That is a good point that I didn't think about.
I agree. Then, I'd rather proceed with the alternative.

@bydymtydym
Copy link

Guys, did I understand correctly that now there is no way to install the OS fully unattended using Calamares?
Now I am making a pxe-server for myself, with the help of which I want to install various distributions used in our company (windows, rhel, debian, etc.)
And so I got to Mandjaro, which uses Calamares, and I see that the Partition module at the Exec stage does not start automatic disk partitioning based on patrition.conf, it waits until the operator presses the Next button.
Or did I understand something wrong? I was going to open a ticket on this topic, but I saw this discussion of yours.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants