On Mon, 14 Dec 2015 21:21:00 -0800
Hugues Alary <hug...@betabrand.com> wrote:

> Someone answered me in a private message and pointed out I must be running
> in a chroot.
> 
> This is indeed the issue. Removing the chroot global option fixes this.


Hi, you should move your lua library in the chroot. It is a more secure way.


> I'll see if I can find a way to keep running haproxy all the while running
> in a chroot.


Just move your lua libraries (and eventually its dependancies) in the chroot.

Thierry


> -Hugues
> 
> On Mon, Dec 14, 2015 at 6:13 PM, Hugues Alary <hug...@betabrand.com> wrote:
> 
> > Hey there,
> >
> > I've been playing with haproxy 1.6.2 and the LUA feature and I'm running
> > into the following issue:
> >
> > I wrote a LUA script that loads an external library called "lua-requests".
> >
> > I installed luarocks, then installed lua-requests via luarocks.
> >
> > Now, my LUA scripts contains the following line:
> >
> > local requests = require("requests")
> >
> > But when I run HAProxy, I get the following error:
> >
> > [ALERT] 347/175818 (4914) : Lua function 'send_varnish_ban': runtime
> > error: /etc/haproxy/send_varnish_ban.lua:2: module 'requests' not found:
> >         no field package.preload['requests']
> >         no file '/usr/local/share/lua/5.3/requests.lua'
> >         no file '/usr/local/share/lua/5.3/requests/init.lua'
> >         no file '/usr/local/lib/lua/5.3/requests.lua'
> >         no file '/usr/local/lib/lua/5.3/requests/init.lua'
> >         no file '/usr/share/lua/5.3/requests.lua'
> >         no file '/usr/share/lua/5.3/requests/init.lua'
> >         no file './requests.lua'
> >         no file './requests/init.lua'
> >         no file '/usr/local/lib/lua/5.3/requests.so'
> >         no file '/usr/lib/x86_64-linux-gnu/lua/5.3/requests.so'
> >         no file '/usr/lib/lua/5.3/requests.so'
> >         no file '/usr/local/lib/lua/5.3/loadall.so'
> >         no file './requests.so'.
> >
> > But, the file /usr/local/share/lua/5.3/requests.lua does exist (ls does
> > show me the file). I even copied/pasted it into my /etc/haproxy/ folder,
> > and HAProxy still can't find it.
> >
> > I tried changing the permissions of the file to 777 just to make sure this
> > wasn't the problem, still no luck.
> >
> > Typing require("requests.lua") in the LUA interactive interpreter works
> > perfectly.
> >
> > I added a print(package.path) in my HAProxy LUA script, and the value
> > seems correct: "
> > /usr/local/share/lua/5.3/?.lua;/usr/local/share/lua/5.3/?/init.lua;/usr/local/lib/lua/5.3/?.lua;/usr/local/lib/lua/5.3/?/init.lua;/usr/share/lua/5.3/?.lua;/usr/share/lua/5.3/?/init.lua;./?.lua;./?/init.lua
> > "
> >
> > I've been fiddling for the past few hours with no luck.
> >
> > Any idea why HAProxy can't seem to find a file that clearly exists?
> >
> > Thanks!
> > -Hugues
> >

Reply via email to