Export the current configuration to a file:
svccfg export pkg/server > pkg.xml
Modify the file so that it looks like the below example. I added the <method_context> and modified the inst_root property. Also the port has to be > 1024 to be usable by ordinary user.
<?xml version='1.0'?>
<!DOCTYPE service_bundle SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'>
<service_bundle type='manifest' name='export'>
<service name='application/pkg/server' type='service' version='0'>
<create_default_instance enabled='true'/>
<dependency name='fs' grouping='require_all' restart_on='none' type='service'>
<service_fmri value='svc:/system/filesystem/local'/>
</dependency>
<dependency name='autofs' grouping='optional_all' restart_on='none' type='service'>
<service_fmri value='svc:/system/filesystem/autofs'/>
</dependency>
<dependency name='ntp' grouping='optional_all' restart_on='none' type='service'>
<service_fmri value='svc:/network/ntp'/>
</dependency>
<dependency name='network' grouping='require_all' restart_on='none' type='service'>
<service_fmri value='svc:/milestone/network'/>
</dependency>
<exec_method name='start' type='method' exec='%{pkg/pkg_root}/lib/svc/method/svc-pkg-depot %m' timeout_seconds='0'>
<method_context>
<method_credential
user='test'
group='staff' />
</method_context>
</exec_method>
<exec_method name='stop' type='method' exec='%{pkg/pkg_root}/lib/svc/method/svc-pkg-depot %m %{restarter/contract}' timeout_seconds='30'/>
<property_group name='pkg' type='application'>
<propval name='cfg_file' type='astring' value=''/>
<propval name='content_root' type='astring' value='usr/share/lib/pkg'/>
<propval name='debug' type='astring' value=''/>
<propval name='log_access' type='astring' value='none'/>
<propval name='log_errors' type='astring' value='stderr'/>
<propval name='mirror' type='boolean' value='false'/>
<propval name='pkg_root' type='astring' value='/'/>
<propval name='proxy_base' type='astring' value=''/>
<propval name='readonly' type='boolean' value='false'/>
<propval name='socket_timeout' type='count' value='60'/>
<propval name='sort_file_max_size' type='astring' value=''/>
<propval name='ssl_cert_file' type='astring' value='none'/>
<propval name='ssl_dialog' type='astring' value='smf'/>
<propval name='ssl_key_file' type='astring' value='none'/>
<propval name='threads' type='count' value='10'/>
<propval name='writable_root' type='astring' value=''/>
<propval name='port' type='count' value='10000'/>
<propval name='inst_root' type='astring' value='/export/home/test/repo'/>
</property_group>
<property_group name='pkg_secure' type='application'>
<property name='read_authorization' type='astring'/>
<property name='ssl_key_passphrase' type='astring'/>
</property_group>
<property_group name='startd' type='framework'>
<propval name='duration' type='astring' value='child'/>
</property_group>
<stability value='Unstable'/>
<template>
<common_name>
<loctext xml:lang='C'>image packaging repository</loctext>
</common_name>
</template>
</service>
</service_bundle>
And import the settings back:
svccfg import pkg.xml
Do not forget to make the service log file writable for the user, otherwise the pkg server will not start:
pfexec chown test /var/svc/log/application-pkg-server:default.log
No comments:
Post a Comment