Re: [lxc-users] lxd lxc exec command to container tries to execute on Host instead?

2016-01-04 Thread brian mullan
Ignore my previous question I figured out how to make it work

Instead of:

*   lxc exec cn1 -- chmod +x /home/$USER/*.sh*

I used this...

   lxc exec cn1 -- /bin/bash -c "chmod +x /home/$USER/*.sh"

and that worked !

sorry for the noise

Brian
___
lxc-users mailing list
lxc-users@lists.linuxcontainers.org
http://lists.linuxcontainers.org/listinfo/lxc-users

Re: [lxc-users] lxd lxc exec command to container tries to execute on Host instead?

2016-01-04 Thread Stéphane Graber
Hi,

Your problem is a misunderstanding of shell glob expansion.

The *.sh is expanded on the machine you're running the command on, then
the expanded form of the command is spawned by the shell, that's why
you're seeing host paths when running it.

lxc exec cn1 -- sh -c "chmod +x /home/$USER/*.sh"

That one will actually run "chmod +x /home/$USER/*.sh" on the target
container and let the container's shell expand $USER and *.sh in the
container rather than on the client.

On Mon, Jan 04, 2016 at 11:46:39AM -0500, brian mullan wrote:
> I was working on a bash script to automate some LXD/LXC container setups.
> 
> I successfully created the container cn1
> 
> I successfully added a new User to cn1
> 
> I successfully PUSHed several script files to the Home directory of the new
> User in CN1
> 
> However, when I try to chmod +x those scripts using:
> 
> 
> 
> *  lxc exec cn1 -- chmod +x /home/$USER/*.sh*it seems to be trying to
> do it on the Host instead & fails!
> 
> I have searched but can't find a reason why or if I am using the exec
> command wrong.
> 
> A snippit of my Host script is below:
> 
> 
> 
> *   lxc remote add images images.linuxcontainers.org
>   # this works*
> 
> *   # launch as a Priviliged container *
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> *   lxc launch images:ubuntu/wily/amd64 cn1 -c security.privileged=true  #
> this works   # create the new User in BOTH cn1 container   lxc exec cn1 - -
> adduser $USER # this works
> #
> # Next pushing the appropriate script to its now running container.
> #-
> lxc file push ./mk-cn1-environment.sh cn1/home/$USER/ # this works   #
> make sure bash scripts we pushed are executable --  THIS FAILS   lxc exec
> cn1 - - chmod +x /home/$USER/*.sh*
> 
> 
> That last command outputs the following error messages:
> 
> 
> 
> 
> *$ lxc exec cn1 -- chmod +x /home/$USER/*.shchmod: cannot access
> '/home/bmullan/createlxc.sh': No such file or directorychmod: cannot
> access '/home/bmullan/deletelxc.sh': No such file or directorychmod:
> cannot access '/home/bmullan/mkcn.sh': No such file or directory*
> 
> 
> However, those .sh files are on my Host in /home/bmullan NOT the ones I
> pushed
> to cn1 in /home/bmullan ?
> 
> Am I using lxc exec incorrectly somehow ?
> 
> thanks for any advice.
> 
> Brian

> ___
> lxc-users mailing list
> lxc-users@lists.linuxcontainers.org
> http://lists.linuxcontainers.org/listinfo/lxc-users


-- 
Stéphane Graber
Ubuntu developer
http://www.ubuntu.com


signature.asc
Description: Digital signature
___
lxc-users mailing list
lxc-users@lists.linuxcontainers.org
http://lists.linuxcontainers.org/listinfo/lxc-users

[lxc-users] lxd lxc exec command to container tries to execute on Host instead?

2016-01-04 Thread brian mullan
I was working on a bash script to automate some LXD/LXC container setups.

I successfully created the container cn1

I successfully added a new User to cn1

I successfully PUSHed several script files to the Home directory of the new
User in CN1

However, when I try to chmod +x those scripts using:



*  lxc exec cn1 -- chmod +x /home/$USER/*.sh*it seems to be trying to
do it on the Host instead & fails!

I have searched but can't find a reason why or if I am using the exec
command wrong.

A snippit of my Host script is below:



*   lxc remote add images images.linuxcontainers.org
  # this works*

*   # launch as a Priviliged container *













*   lxc launch images:ubuntu/wily/amd64 cn1 -c security.privileged=true  #
this works   # create the new User in BOTH cn1 container   lxc exec cn1 - -
adduser $USER # this works
#
# Next pushing the appropriate script to its now running container.
#-
lxc file push ./mk-cn1-environment.sh cn1/home/$USER/ # this works   #
make sure bash scripts we pushed are executable --  THIS FAILS   lxc exec
cn1 - - chmod +x /home/$USER/*.sh*


That last command outputs the following error messages:




*$ lxc exec cn1 -- chmod +x /home/$USER/*.shchmod: cannot access
'/home/bmullan/createlxc.sh': No such file or directorychmod: cannot
access '/home/bmullan/deletelxc.sh': No such file or directorychmod:
cannot access '/home/bmullan/mkcn.sh': No such file or directory*


However, those .sh files are on my Host in /home/bmullan NOT the ones I
pushed
to cn1 in /home/bmullan ?

Am I using lxc exec incorrectly somehow ?

thanks for any advice.

Brian
___
lxc-users mailing list
lxc-users@lists.linuxcontainers.org
http://lists.linuxcontainers.org/listinfo/lxc-users