Yocage: Unterschied zwischen den Versionen

Aus C3D2
Zur Navigation springen Zur Suche springen
Zeile 75: Zeile 75:
tboston: yeah you said something about an admin gui for pcbsd would be nice
tboston: yeah you said something about an admin gui for pcbsd would be nice


'''kenmoore: Oh, I was talking about a unified administration framework/system (such as a library) for the system''' so yeah, I guess this would start counting as that. basically need something on the low-level to know about all the various FreeBSD files/settings/etc, so top level GUI's/tools only need to run CMDs through a single utility makes it a lot easier to maintain system tools and UI's down the road
'''kenmoore: Oh, I was talking about a unified administration framework/system (such as a library) for the system''' so yeah, I guess this would start counting as that. '''basically need something on the low-level to know about all the various FreeBSD files/settings/etc, so top level GUI's/tools only need to run CMDs through a single utility makes it a lot easier to maintain system tools and UI's down the road'''


tboston 4:29 PM okay, I'll keep that in mind
tboston: okay, I'll keep that in mind


tboston: can you be more specific on that low-level tool? Like what would it need and what is the OS/Admin getting out of it?
tboston: can you be more specific on that low-level tool? Like what would it need and what is the OS/Admin getting out of it?


kenmoore 4:42 PM Well, I was thinking about 2-components:
kenmoore: Well, '''I was thinking about 2-components:


1) A single libary (something like libSysAdmin), with all the various low-level system interface routines (in C/C++/QtCore - any of them will work) This is the "unifier" for accessing all the various FreeBSD subsystems (networking, user management, etc..) because every subsystem seems to have their own files/formats/etc
1) A single libary (something like libSysAdmin), with all the various low-level system interface routines (in C/C++/QtCore - any of them will work) This is the "unifier" for accessing all the various FreeBSD subsystems (networking, user management, etc..) because every subsystem seems to have their own files/formats/etc'''


2) The user interface (web-based, or local) which just needs to load that single library to read/change things on the system as necessary
'''2) The user interface (web-based, or local) which just needs to load that single library to read/change things on the system as necessary. This webclient tool that we are working on could easily become a #2, but #1 does not exist yet. #1 will probably need a couple different libs actually - a "user" level one for providing read-access for supported things, and a "root" level one for modifications so maybe a libsysadmin-[user/root] setup'''
This webclient tool that we are working on could easily become a #2, but #1 does not exist yet
 
#1 will probably need a couple different libs actually - a "user" level one for providing read-access for supported things, and a "root" level one for modifications
tboston: okay, I think I got it
so maybe a libsysadmin-[user/root] setup
 
tboston 4:47 PM okay, I think I got it
kenmoore: that way the #2 interfaces can only load the libs they are able to actually use. this would be nice because unlike  systemd and other Linux-y tools it does not ​replace​ the FreeBSD admin tools - it simple provides a simple interface to them. all the old methods will still work just fine - the libs just provide a single point of entry to be maintained/updates as FreeBSd changes
kenmoore 4:47 PM that way the #2 interfaces can only load the libs they are able to actually use
 
this would be nice because unlike  systemd and other Linux-y tools it does not ​replace​ the FreeBSD admin tools - it simple provides a simple interface to them
tboston: do you know of a linux equivalent?
all the old methods will still work just fine - the libs just provide a single point of entry to be maintained/updates as FreeBSd changes
 
tboston 4:49 PM do you know of a linux equivalent?
kenmoore: not really - I am not too familiar with Linux utilities aside from some basic generalities
kenmoore 4:49 PM not really - I am not too familiar with Linux utilities aside from some basic generalities
 
tboston 4:49 PM k
tboston: k
kenmoore 4:50 PM I think this type of setup would be unique to FreeBSD - since I hear the Linux people complain all the time about a new system meaning how they change setting X is now completely different
 
this would basically provide a standard API for system calls without changing the underlying OS/infrastructure
kenmoore: I think this type of setup would be unique to FreeBSD - since I hear the Linux people complain all the time about a new system meaning how they change setting X is now completely different. this would basically provide a standard API for system calls without changing the underlying OS/infrastructure
tboston 4:51 PM understood
 
kenmoore 4:53 PM I started working on one for a little bit (networking first), you can see what I have in pcbsd/src-lib/pc-utils
tboston: understood
specifically the NetDevice.cpp file
 
that does a lot of the network probing on a very low C interface level
kenmoore: '''I started working on one for a little bit (networking first), you can see what I have in pcbsd/src-lib/pc-utils specifically the NetDevice.cpp file. that does a lot of the network probing on a very low C interface level. oh, and the pcbsd-network.[cpp/h] files'''
oh, and the pcbsd-network.[cpp/h] files
 
tboston 4:54 PM let me check that
tboston: let me check that
kenmoore 4:55 PM note that I was creating the library with C++/Qt though - so if you want to do a pure C library implementation you might need to change some things
 
kenmoore 4:56 PM mainly convert the QString's to a C string
kenmoore: '''note that I was creating the library with C++/Qt though - so if you want to do a pure C library implementation you might need to change some things'''
and things like that
 
tboston 4:57 PM gotta look into that when I get home
kenmoore: '''mainly convert the QString's to a C string and things like that'''
4:57
 
still at work
tboston: gotta look into that when I get home
kenmoore 4:57 PM that is fine - no rush
 
tboston 4:58 PM but guess woul'd be fine as a base
tboston: but guess would be fine as a base
kenmoore 4:58 PM I had to put that effort on hold since I just got too busy with other stuff
 
tboston 4:58 PM if you dont mind
kenmoore: I had to put that effort on hold since I just got too busy with other stuff
kenmoore 4:58 PM I don't mind
 
tboston 4:58 PM anyway, our Haskell guy is unemployed then...
tboston: if you dont mind
kenmoore 4:58 PM :simple_smile:
 
This is easily a full/huge project, so I started tackling it by breaking it up into all the various subsystems
kenmoore: I don't mind
I recommend a similar approach so that you can simple add/enable new subsystems instead of breaking existing stuff
 
keep it all compartmentalized
tboston: anyway, our Haskell guy is unemployed then...
tboston 5:00 PM is pbsd/pc-utils all part of it?
 
kenmoore 5:01 PM pcbsd/src-lib/pc-utils was all of it
kenmoore: :simple_smile: '''This is easily a full/huge project, so I started tackling it by breaking it up into all the various subsystems. I recommend a similar approach so that you can simple add/enable new subsystems instead of breaking existing stuff. keep it all compartmentalized'''
tboston 5:01 PM ahh yeah thats what I meant
 
kenmoore 5:01 PM I created the shell for the GUI interactions (src-lib/pc-gui) but there is really nothing there
tboston: is pbsd/pc-utils all part of it?
the lib needs to be more complete first so the API is set before we can start writing GUI interactions with it
 
note that for some subsystems (like networking) FreeBSD is designed around OS-utility use - not direct library access/control (such as using "ifconfig"), so for making changes you might need to actually run that utility
kenmoore: pcbsd/src-lib/pc-utils was all of it
otherwise you might end up duplicating a lot of the code within ifconfig, and break the future-proofing of the API (basically maintaining a fork of an OS tool)
 
just FYI
tboston: ahh yeah thats what I meant
:simple_smile:
 
usually just reading the system info can all be done through libs though
kenmoore: '''I created the shell for the GUI interactions (src-lib/pc-gui) but there is really nothing there. the lib needs to be more complete first so the API is set before we can start writing GUI interactions with it. note that for some subsystems (like networking) FreeBSD is designed around OS-utility use - not direct library access/control (such as using "ifconfig"), so for making changes you might need to actually run that utility. otherwise you might end up duplicating a lot of the code within ifconfig, and break the future-proofing of the API (basically maintaining a fork of an OS tool) just FYI :simple_smile: usually just reading the system info can all be done through libs though'''
tboston 5:06 PM well, sounds huge like you just said :simple_smile:
 
but hey, we're 4 ppl wanting to get involved
tboston: well, sounds huge like you just said :simple_smile: but hey, we're 4 ppl wanting to get involved
kenmoore 5:06 PM give each person a subsystem and get started!
 
:stuck_out_tongue:
kenmoore: give each person a subsystem and get started! :stuck_out_tongue:
tboston 5:07 PM haha yeah
 
and we need to integrate Haskell somewhere :stuck_out_tongue:
tboston: haha yeah and we need to integrate Haskell somewhere :stuck_out_tongue:
kenmoore 5:07 PM yeah, that too
 
I recommend making a general class of static functions for use across all subsystems
kenmoore: yeah, that too. I recommend making a general class of static functions for use across all subsystems. such as reading a sysctl
such as reading a sysctl
 
tboston 5:08 PM yep
tboston: yep
kenmoore 5:08 PM anything to make it easy for others to read/update later is good... :simple_smile:
 
tboston 5:10 PM Haskell can talk json/websockets, we might test that out some time
kenmoore: anything to make it easy for others to read/update later is good... :simple_smile:
kenmoore 5:11 PM yeah, JSON/websockets are fairly universal
 
because it is basically a standardized ​format​ rather than a standardized ​utility​
tboston: Haskell can talk json/websockets, we might test that out some time
so any tool/utility can support the format as necessary
 
That is actually my problem with a lot of the linux stuff - they have recently been pushing standards in the form of particular utilities/tools instead of a standardized interface format
kenmoore: yeah, JSON/websockets are fairly universal. because it is basically a standardized ​format​ rather than a standardized ​utility​. so any tool/utility can support the format as necessary. That is actually my problem with a lot of the linux stuff - they have recently been pushing standards in the form of particular utilities/tools instead of a standardized interface format. DBUS/systemd are good examples. tools are restrictive (OS-support, library requirements, etc). while formats are universal
DBUS/systemd are good examples
tools are restrictive (OS-support, library requirements, etc)
while formats are universal

Version vom 28. September 2015, 16:55 Uhr

German / deutsch English /englisch

Projekt

Ausgangssituation des Projektes

PC-BSD hatte Warden. Warden ist (war) ein Werkzeug zur Verwaltung von Jails. Eine Besonderheit von Warden ist (war), dass die Verwaltung auch mit einer grafischen Oberfläche (Qt) möglich ist (war).

Warden wurde durch iocage ersetzt. iocage bietet jedoch keine grafische Oberfläche. Praktisch wurde die grafischen Oberfläche ersatzlos gestrichen. Ein Ersatz für die grafischen Oberfläche ist höchstens angekündigt.

AppCafe, das Werkzeug zur Verwaltung von Software von PC-BSD, wurde von einer grafischen Oberfläche (Qt) auf eine grafische Oberfläche als Browser umgestellt. Zweck ist es, dass auch die Verwaltung der Software (AppCafe) aus der Ferne mit einem Web-Browser möglich ist.

unser Idee

Ein Ersatz der grafischen Oberfläche soll, wie es sie bei Warden gab, soll geschaffen werden.

Anstatt eine grafischen Oberfläche mit Qt, wie es bei Warden der Fall war, zu erstellen, soll in Anlehnung an das Konzept zur Verwaltung der Software (AppCafe) ein Browser verwendet werden. Die Verwaltung von Jails soll somit auch aus der Ferne mit einem Web-Browser möglich sein.

unser Ansatz

Wir bauen für iocage (Verwaltung von Jails für die Kommandozeile) einen Web-Anwendung.

Eigentlich müsste die Realisierung unabhängig der Komponenten von PC-BSD gegenüber FreeBSD

project

Komponenten

FreeBSD

Wir benutzen PC-BSD (bzw. FreeBSD), da Jails "schön", bequem und verhältnismäßig sicher sind.

Im Übrigen kann auch an eine Portierung für DragonFly BSD oder OpenIndiana gedacht werden.

iocage

Wir benutzen iocage, da es sehr einfach und bequem scheint und ohne große Konfigurationsdateien auskommt.

Nennenswerte Alternative dazu wäre vielleicht nur ezjail.

Yesod

In Anlehnung an den Erfolg vom Matemat wird Yesod eingesetzt. Yeah!

Ressourcen


Transcript KenMoore/KrisMoore zum aktuellen Stand

tboston: is it okay if we try to make a web interface for iocage? thats our plan for now. or is it not needed since you want to keep that in AppCafé?

kmoore: hey, if you guys want to make one, go for it, I can't stop ya :) The plan is to put one into AppCafe also, but having alternatives is always good

tboston: but if you don't use it in the end its somehow senseless

kmoore: true. The plan is to have one in AppCafe which is also in FreeNAS / TrueOS, etc

tboston kenmoore: what was that admin-tool you talked about?

kenmoore: tboston: admin-tool?

tboston: yeah you said something about an admin gui for pcbsd would be nice

kenmoore: Oh, I was talking about a unified administration framework/system (such as a library) for the system so yeah, I guess this would start counting as that. basically need something on the low-level to know about all the various FreeBSD files/settings/etc, so top level GUI's/tools only need to run CMDs through a single utility makes it a lot easier to maintain system tools and UI's down the road

tboston: okay, I'll keep that in mind

tboston: can you be more specific on that low-level tool? Like what would it need and what is the OS/Admin getting out of it?

kenmoore: Well, I was thinking about 2-components:

1) A single libary (something like libSysAdmin), with all the various low-level system interface routines (in C/C++/QtCore - any of them will work) This is the "unifier" for accessing all the various FreeBSD subsystems (networking, user management, etc..) because every subsystem seems to have their own files/formats/etc

2) The user interface (web-based, or local) which just needs to load that single library to read/change things on the system as necessary. This webclient tool that we are working on could easily become a #2, but #1 does not exist yet. #1 will probably need a couple different libs actually - a "user" level one for providing read-access for supported things, and a "root" level one for modifications so maybe a libsysadmin-[user/root] setup

tboston: okay, I think I got it

kenmoore: that way the #2 interfaces can only load the libs they are able to actually use. this would be nice because unlike systemd and other Linux-y tools it does not ​replace​ the FreeBSD admin tools - it simple provides a simple interface to them. all the old methods will still work just fine - the libs just provide a single point of entry to be maintained/updates as FreeBSd changes

tboston: do you know of a linux equivalent?

kenmoore: not really - I am not too familiar with Linux utilities aside from some basic generalities

tboston: k

kenmoore: I think this type of setup would be unique to FreeBSD - since I hear the Linux people complain all the time about a new system meaning how they change setting X is now completely different. this would basically provide a standard API for system calls without changing the underlying OS/infrastructure

tboston: understood

kenmoore: I started working on one for a little bit (networking first), you can see what I have in pcbsd/src-lib/pc-utils specifically the NetDevice.cpp file. that does a lot of the network probing on a very low C interface level. oh, and the pcbsd-network.[cpp/h] files

tboston: let me check that

kenmoore: note that I was creating the library with C++/Qt though - so if you want to do a pure C library implementation you might need to change some things

kenmoore: mainly convert the QString's to a C string and things like that

tboston: gotta look into that when I get home

tboston: but guess would be fine as a base

kenmoore: I had to put that effort on hold since I just got too busy with other stuff

tboston: if you dont mind

kenmoore: I don't mind

tboston: anyway, our Haskell guy is unemployed then...

kenmoore: :simple_smile: This is easily a full/huge project, so I started tackling it by breaking it up into all the various subsystems. I recommend a similar approach so that you can simple add/enable new subsystems instead of breaking existing stuff. keep it all compartmentalized

tboston: is pbsd/pc-utils all part of it?

kenmoore: pcbsd/src-lib/pc-utils was all of it

tboston: ahh yeah thats what I meant

kenmoore: I created the shell for the GUI interactions (src-lib/pc-gui) but there is really nothing there. the lib needs to be more complete first so the API is set before we can start writing GUI interactions with it. note that for some subsystems (like networking) FreeBSD is designed around OS-utility use - not direct library access/control (such as using "ifconfig"), so for making changes you might need to actually run that utility. otherwise you might end up duplicating a lot of the code within ifconfig, and break the future-proofing of the API (basically maintaining a fork of an OS tool) just FYI :simple_smile: usually just reading the system info can all be done through libs though

tboston: well, sounds huge like you just said :simple_smile: but hey, we're 4 ppl wanting to get involved

kenmoore: give each person a subsystem and get started! :stuck_out_tongue:

tboston: haha yeah and we need to integrate Haskell somewhere :stuck_out_tongue:

kenmoore: yeah, that too. I recommend making a general class of static functions for use across all subsystems. such as reading a sysctl

tboston: yep

kenmoore: anything to make it easy for others to read/update later is good... :simple_smile:

tboston: Haskell can talk json/websockets, we might test that out some time

kenmoore: yeah, JSON/websockets are fairly universal. because it is basically a standardized ​format​ rather than a standardized ​utility​. so any tool/utility can support the format as necessary. That is actually my problem with a lot of the linux stuff - they have recently been pushing standards in the form of particular utilities/tools instead of a standardized interface format. DBUS/systemd are good examples. tools are restrictive (OS-support, library requirements, etc). while formats are universal