Under lxc 2.1.1 (Ubuntu 16.04 lxc1 2.1.1-0ubuntu1~ubuntu16.04.1~ppa1)
it has been consistent for me that "lxc-copy -n oldcontainer -N newcontainer"
will create newcontainer such that it has hostname "oldcontainer".

Since oldcontainer is necessarily stopped, I have been starting the
newcontainer, manually editing /etc/hostname and restarting.

This differs from lxc 2.0 versions where newcontainer will have
hostname "newcontainer" when first started.

The tests I include were actually performed while the main host
(my workstation) was in need of a few updates and a reboot.  I
cleaned that up, and repeated the gist of the test after the reboot,
and the problem appeared the same.

Hmm.  At the last minute I looked for a new option which might affect
the new hostname.  I find (man lxc-copy)...

       -K, --keepname
              When  this option is specified the hostname of the original con‐
              tainer will be kept for the copy.

This option seemed to exist in 2.0.8 also.  (also -M, --keepmac)
There doesn't seem to be opposite options.  (This suggests I should
be checking the Mac addresses also, but I think they must have been
newly allocated or real strangeness would result; lxc-ls has no option
to list Mac address?).  Indeed...

   root@scspc578-1604# cd /var/lib/lxc
   root@scspc578-1604# cat */config | grep lxc'.*'hwaddr | sort | uniq -c | 
sort -n
   root@scspc578-1604# cat */config | grep lxc'.*'hwaddr | grep -v '^#' | sed 
's/^.*= *//' | sort | uniq -c | sort -n

suggests the Mac addresses are not being retained.  (First command allowed
visual verification, and search for anomalies; second confirmed further).
(Each Mac address occurs only once; I don't need to reproduce mine here).

Okay...

   root@scspc578-1604:/var/lib/lxc# cat */config | grep lxc'.*'hwaddr | sort | 
uniq -c | sort -n | grep -v '^  *1 '
      3 #lxc.net.1.hwaddr = 00:16:3e:77:52:20
   root@scspc578-1604:/var/lib/lxc# cat */config | grep lxc'.*'hwaddr | grep -v 
'^#' | sed 's/^.*= *//' | sort | uniq -c | sort -n | grep -v '^  *1 '
   root@scspc578-1604:/var/lib/lxc# 

So, anyway, it almost looks like "-K" has effectively become the default.



Adrian Pepper
[email protected]

(You'd really better have a plain-text mail client for the following...)

==============  Demo using Ubuntu 16.04 lxc1 2.1.1 (Start) ================
root@scspc578-1604:~# lxc-create -n test1 -t ubuntu -- -b cscf-adm
Checking cache download in /var/cache/lxc/xenial/rootfs-amd64 ... 
Copy /var/cache/lxc/xenial/rootfs-amd64 to /var/lib/lxc/test1/rootfs ... 
Copying rootfs to /var/lib/lxc/test1/rootfs ...
Generating locales (this might take a while)...
  en_CA.UTF-8... done
Generation complete.
Creating SSH2 RSA key; this may take some time ...
2048 SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX root@scspc578-1604 (RSA)
Creating SSH2 DSA key; this may take some time ...
1024 SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX root@scspc578-1604 (DSA)
Creating SSH2 ECDSA key; this may take some time ...
256 SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX root@scspc578-1604 
(ECDSA)
Creating SSH2 ED25519 key; this may take some time ...
256 SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX root@scspc578-1604 
(ED25519)
invoke-rc.d: could not determine current runlevel
invoke-rc.d: policy-rc.d denied execution of start.

Current default time zone: 'Etc/UTC'
Local time is now:      Mon Nov 27 19:18:35 UTC 2017.
Universal Time is now:  Mon Nov 27 19:18:35 UTC 2017.


##
# Log in as user cscf-adm
##

root@scspc578-1604:~# 
root@scspc578-1604:~# lxc-start -n test1
root@scspc578-1604:~# lxc-attach -n test1
root@test1:~# exit
exit
root@scspc578-1604:~# lxc-stop -n test1
root@scspc578-1604:~# lxc-copy -n test1 -N test2
root@scspc578-1604:~# lxc-copy --version
2.1.1
root@scspc578-1604:~# lxc-start -n test2
root@scspc578-1604:~# lxc-attach -n test2
root@test1:~# cat /etc/hostname
test1
root@test1:~# echo test2 > /etc/hostname
root@test1:~# exit
exit
root@scspc578-1604:~# lxc-stop -n test2
root@scspc578-1604:~# lxc-start -n test2
root@scspc578-1604:~# lxc-attach -n test2
root@test2:~# cat /etc/hostname
test2
root@test2:~# exit
exit
root@scspc578-1604:~# lxc-stop -n test2
root@scspc578-1604:~# lxc-start -n test1
root@scspc578-1604:~# lxc-attach -n test1
root@test1:~# hostname
test1
root@test1:~# exit
exit
root@scspc578-1604:~# lxc-stop -n test1
root@scspc578-1604:~# lxc-destroy -n test1
Destroyed container test1
root@scspc578-1604:~# lxc-destroy -n test2
Destroyed container test2
root@scspc578-1604:~# dpkg-query --list | grep ' lxc1'
ii  lxc                                         
2.1.1-0ubuntu1~ubuntu16.04.1~ppa1            all          Transitional package 
for lxc1
ii  lxc1                                        
2.1.1-0ubuntu1~ubuntu16.04.1~ppa1            amd64        Linux Containers 
userspace tools
root@scspc578-1604:~# 
==============  Demo using Ubuntu 16.04 lxc1 2.1.1 (End) ==================

I had occasion to create a nested lxc container host (2.0.8, Ubuntu 16.04)
to do a demo for a colleague.

Within that container, lxc-copy seems to work as it did before.
To wit...

==============  Demo using Ubuntu 16.04 lxc1 2.0.8 (Start) ================
root@u1604lxcdemo:~# lxc-create -n test3 -t ubuntu --  -b cscf-adm
Checking cache download in /var/cache/lxc/xenial/rootfs-amd64 ... 
Copy /var/cache/lxc/xenial/rootfs-amd64 to /var/lib/lxc/test3/rootfs ... 
Copying rootfs to /var/lib/lxc/test3/rootfs ...
Generating locales (this might take a while)...
  en_CA.UTF-8... done
Generation complete.
Creating SSH2 RSA key; this may take some time ...
2048 SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX root@u1604lxcdemo (RSA)
Creating SSH2 DSA key; this may take some time ...
1024 SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX root@u1604lxcdemo (DSA)
Creating SSH2 ECDSA key; this may take some time ...
256 SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX root@u1604lxcdemo (ECDSA)
Creating SSH2 ED25519 key; this may take some time ...
256 SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX root@u1604lxcdemo 
(ED25519)
invoke-rc.d: could not determine current runlevel
invoke-rc.d: policy-rc.d denied execution of start.

Current default time zone: 'Etc/UTC'
Local time is now:      Mon Nov 27 19:28:35 UTC 2017.
Universal Time is now:  Mon Nov 27 19:28:35 UTC 2017.


##
# Log in as user cscf-adm
##

root@u1604lxcdemo:~# lxc-start -n test3
root@u1604lxcdemo:~# lxc-attach -n test3
root@test3:/# hostname
test3
root@test3:/# cat /etc/hostname
test3
root@test3:/# exit
exit
root@u1604lxcdemo:~# lxc-stop -n test3
root@u1604lxcdemo:~# lxc-copy -n test3 -N test4
root@u1604lxcdemo:~# lxc-start -n test4
root@u1604lxcdemo:~# lxc-attach -n test4
root@test4:/# hostname
test4
root@test4:/# cat /etc/hostname
test4root@test4:/# exit
exit
root@u1604lxcdemo:~# 
root@u1604lxcdemo:~# lxc-create --version
2.0.8
root@u1604lxcdemo:~# dpkg-query --list | grep ' lxc1'
ii  lxc                            2.0.8-0ubuntu1~16.04.2                     
all          Transitional package for lxc1
ii  lxc1                           2.0.8-0ubuntu1~16.04.2                     
amd64        Linux Containers userspace tools
root@u1604lxcdemo:~# 
==============  Demo using Ubuntu 16.04 lxc1 2.0.8 (End) ==================


I manually XXX'd out RSA fingerprints above, since they don't pertain
to the issue.


Adrian.

_______________________________________________
lxc-users mailing list
[email protected]
http://lists.linuxcontainers.org/listinfo/lxc-users

Reply via email to