Ubuntu 13.04 Raring amd64
$ apt-cache policy xcp-xapi | head -2
xcp-xapi:
Installed: 1.3.2-14ubuntu1
Attempting to enable external authentication via PAM results in an error:
$ sudo xe pool-enable-external-auth auth-type=PAM service-name=auth_pam
The pool failed to enable external authentication.
host: 5c6dea34-23f4-8f77-3d76-32a1bff35be9 (caddy)
message: XENAPI_MISSING_PLUGIN: [ extauth-hook ]
Looking at the source package it seems that the './ocaml/auth/' plugins aren't included in any binary package
In an upstream or RPM installation they would be at '/etc/xapi.d/plugins/'. './debian/patches/0010-fix-base-path-script.patch' changes that location via PLUGINDIR to '/usr/lib/xcp/plugins/'.
The only binary package that installs to that location is "xcp-storage-managers" for the SR plugins.
Attempting to use it from a remote system:
$ xe vm-list -s caddy -u tj -pw "$PASSWORD"
Lost connection to the server.
... results in the xapi daemon dying:
[20130627T07:30:42.759Z|debug|caddy|161 INET 127.0.0.1:80||cli] xe vm-list username=tj password=null
[20130627T07:30:42.824Z|debug|caddy|29 monitor|performance monitor D:b0d24a5097cc|backtrace] Raised at thread.ml:75.23-50 -> monitor.ml:579.6-44
[20130627T07:30:42.824Z|debug|caddy|19|Starting periodic scheduler D:4104db517426|xapi] Raised at threadext.ml:0.0-0 -> pervasiveext.ml:22.2-9
[20130627T07:30:42.825Z|debug|caddy|124 sr_scan|SR scanner D:f7825e4c2fa2|backtrace] Raised at thread.ml:75.23-50 -> xapi_sr.ml:238.4-31 -> server_helpers.ml:76.11-23
[20130627T07:30:42.825Z|debug|caddy|28 pool_db_sync|Pool DB sync D:b8937e68d510|backtrace] Raised at thread.ml:75.23-50 -> pool_db_backup.ml:275.18-64
[20130627T07:30:42.825Z|debug|caddy|16 db_gc||backtrace] Raised at thread.ml:75.23-50 -> db_gc.ml:526.7-31
[20130627T07:30:42.825Z|debug|caddy|17 INET 10.254.251.3:80||xapi] Raised at thread.ml:75.23-50 -> server_io.ml:88.1-17 -> server_io.ml:110.2-88 -> pervasiveext.ml:22.2-9
[20130627T07:30:42.825Z|debug|caddy|2 UNIX /var/lib/xcp/xapi||xapi] Raised at thread.ml:75.23-50 -> server_io.ml:88.1-17 -> server_io.ml:110.2-88 -> pervasiveext.ml:22.2-9
[20130627T07:30:42.825Z|debug|caddy|3 INET 127.0.0.1:80||xapi] Raised at thread.ml:75.23-50 -> server_io.ml:88.1-17 -> server_io.ml:110.2-88 -> pervasiveext.ml:22.2-9
[20130627T07:30:42.825Z|debug|caddy|0 thread_zero||xapi] xapi top-level caught Unix_error: Interrupted system call, select,
[20130627T07:30:42.825Z|debug|caddy|29 monitor|performance monitor D:b0d24a5097cc|backtrace] Raised at thread.ml:75.23-50 -> monitor.ml:585.6-22 -> server_helpers.ml:76.11-23
[20130627T07:30:42.825Z|debug|caddy|19|Starting periodic scheduler D:4104db517426|backgroundscheduler] Sleeping until next event (89.786183 seconds)
[20130627T07:30:42.825Z|debug|caddy|124 sr_scan|SR scanner D:f7825e4c2fa2|dispatcher] Server_helpers.exec exception_handler: Got exception INTERNAL_ERROR: [ Unix.Unix_error(11, "select", "") ]
[20130627T07:30:42.825Z|debug|caddy|28 pool_db_sync|Pool DB sync D:b8937e68d510|pool_db_sync] Exception in DB synchronise thread: INTERNAL_ERROR: [ Unix.Unix_error(11, "select", "") ]
[20130627T07:30:42.825Z|debug|caddy|16 db_gc||db_gc] Exception in DB GC thread: INTERNAL_ERROR: [ Unix.Unix_error(11, "select", "") ]
[20130627T07:30:42.825Z|debug|caddy|0 thread_zero||xapi] received EINTR. waiting to enable db thread to flush
[20130627T07:30:42.825Z|debug|caddy|29 monitor|performance monitor D:b0d24a5097cc|dispatcher] Server_helpers.exec exception_handler: Got exception INTERNAL_ERROR: [ Unix.Unix_error(11, "select", "") ]
[20130627T07:30:42.826Z|debug|caddy|124 sr_scan|SR scanner D:f7825e4c2fa2|dispatcher] Raised at string.ml:150.25-34 -> stringext.ml:108.13-29
[20130627T07:30:42.826Z|debug|caddy|29 monitor|performance monitor D:b0d24a5097cc|dispatcher] Raised at string.ml:150.25-34 -> stringext.ml:108.13-29
[20130627T07:30:42.826Z|debug|caddy|124 sr_scan|SR scanner D:f7825e4c2fa2|backtrace] Raised at string.ml:150.25-34 -> stringext.ml:108.13-29
[20130627T07:30:42.826Z|debug|caddy|29 monitor|performance monitor D:b0d24a5097cc|backtrace] Raised at string.ml:150.25-34 -> stringext.ml:108.13-29
[20130627T07:30:42.826Z|debug|caddy|161 INET 127.0.0.1:80|session.login_with_password D:41fc3a91a237|xapi] Successful local authentication user tj from HTTP request from Internet with User-Agent: xen-api-libs/1.0
[20130627T07:30:42.826Z|debug|caddy|124 sr_scan|SR scanner D:f7825e4c2fa2|xapi] Raised at server_helpers.ml:94.14-15 -> pervasiveext.ml:22.2-9
[20130627T07:30:42.826Z|debug|caddy|29 monitor|performance monitor D:b0d24a5097cc|xapi] Raised at server_helpers.ml:94.14-15 -> pervasiveext.ml:22.2-9
[20130627T07:30:42.826Z|debug|caddy|124 sr_scan|SR scanner D:f7825e4c2fa2|xapi] Raised at pervasiveext.ml:26.22-25 -> pervasiveext.ml:22.2-9
[20130627T07:30:42.826Z|debug|caddy|29 monitor|performance monitor D:b0d24a5097cc|xapi] Raised at pervasiveext.ml:26.22-25 -> pervasiveext.ml:22.2-9
[20130627T07:30:42.826Z|debug|caddy|124 sr_scan|SR scanning D:e230a030b40a|xapi] Raised at pervasiveext.ml:26.22-25 -> pervasiveext.ml:22.2-9
[20130627T07:30:42.826Z|debug|caddy|29 monitor|monitor D:43cc29a0c2a6|xapi] Raised at pervasiveext.ml:26.22-25 -> pervasiveext.ml:22.2-9
[20130627T07:30:42.826Z|debug|caddy|124 sr_scan|SR scanning D:e230a030b40a|xapi] Raised at pervasiveext.ml:26.22-25 -> pervasiveext.ml:22.2-9
[20130627T07:30:42.826Z|debug|caddy|29 monitor|monitor D:43cc29a0c2a6|xapi] Raised at pervasiveext.ml:26.22-25 -> xenctrl.ml:115.13-17 -> xenctrl.ml:115.56-59 -> pervasiveext.ml:22.2-9
[20130627T07:30:42.826Z| warn|caddy|124 sr_scan|SR scanning D:e230a030b40a|startup] thread [SR scanning] dying on exception: Unix.Unix_error(11, "select", "")
[20130627T07:30:42.826Z|debug|caddy|124 sr_scan|SR scanning D:e230a030b40a|backtrace] Raised at startup.ml:30.10-13 -> server_helpers.ml:76.11-23
[20130627T07:30:42.827Z|debug|caddy|124 sr_scan|SR scanning D:e230a030b40a|dispatcher] Server_helpers.exec exception_handler: Got exception INTERNAL_ERROR: [ Unix.Unix_error(11, "select", "") ]
[20130627T07:30:42.827Z|debug|caddy|124 sr_scan|SR scanning D:e230a030b40a|dispatcher] Raised at string.ml:150.25-34 -> stringext.ml:108.13-29
[20130627T07:30:42.827Z|debug|caddy|124 sr_scan|SR scanning D:e230a030b40a|backtrace] Raised at string.ml:150.25-34 -> stringext.ml:108.13-29
[20130627T07:30:42.827Z|debug|caddy|124 sr_scan|SR scanning D:e230a030b40a|xapi] Raised at server_helpers.ml:94.14-15 -> pervasiveext.ml:22.2-9
[20130627T07:30:42.827Z|debug|caddy|124 sr_scan|SR scanning D:e230a030b40a|xapi] Raised at pervasiveext.ml:26.22-25 -> pervasiveext.ml:22.2-9
[20130627T07:30:42.827Z|debug|caddy|124 sr_scan||xapi] Raised at pervasiveext.ml:26.22-25 -> pervasiveext.ml:22.2-9
[20130627T07:30:42.827Z|debug|caddy|124 sr_scan||xapi] Raised at pervasiveext.ml:26.22-25 -> pervasiveext.ml:22.2-9
[20130627T07:30:42.827Z| warn|caddy|29 monitor|monitor D:43cc29a0c2a6|startup] thread [monitor] dying on exception: Unix.Unix_error(11, "select", "")
[20130627T07:30:42.827Z|debug|caddy|29 monitor|monitor D:43cc29a0c2a6|backtrace] Raised at startup.ml:30.10-13 -> server_helpers.ml:76.11-23
[20130627T07:30:42.827Z|debug|caddy|29 monitor|monitor D:43cc29a0c2a6|dispatcher] Server_helpers.exec exception_handler: Got exception INTERNAL_ERROR: [ Unix.Unix_error(11, "select", "") ]
[20130627T07:30:42.827Z|debug|caddy|29 monitor|monitor D:43cc29a0c2a6|dispatcher] Raised at string.ml:150.25-34 -> stringext.ml:108.13-29
[20130627T07:30:42.827Z|debug|caddy|29 monitor|monitor D:43cc29a0c2a6|backtrace] Raised at string.ml:150.25-34 -> stringext.ml:108.13-29
[20130627T07:30:42.827Z|debug|caddy|29 monitor|monitor D:43cc29a0c2a6|xapi] Raised at server_helpers.ml:94.14-15 -> pervasiveext.ml:22.2-9
[20130627T07:30:42.827Z|debug|caddy|29 monitor|monitor D:43cc29a0c2a6|xapi] Raised at pervasiveext.ml:26.22-25 -> pervasiveext.ml:22.2-9
[20130627T07:30:42.827Z|debug|caddy|29 monitor||xapi] Raised at pervasiveext.ml:26.22-25 -> pervasiveext.ml:22.2-9
[20130627T07:30:42.827Z|debug|caddy|29 monitor||xapi] Raised at pervasiveext.ml:26.22-25 -> pervasiveext.ml:22.2-9
[20130627T07:30:42.827Z| info|caddy|161 INET 127.0.0.1:80|session.login_with_password D:41fc3a91a237|xapi] Session.create trackid=ca437f5f79cde3f777de41d4052d037d pool=false uname=tj is_local_superuser=true auth_user_sid= parent=trackid=9834f5af41c964e225f24279aefe4e49
[20130627T07:30:42.828Z|debug|caddy|161 INET 127.0.0.1:80|session.login_with_password D:41fc3a91a237|xapi] Attempting to open /var/lib/xcp/xapi
I've successfully created a new binary package "xcp-plugins" which is working with PAM to remotely authenticate a local UNIX user.
There are other problems probably unrelated to the external authentication which I need to solve. Once done I'll push a patch to Debian for the "xcp-plugins" binary package addition.