140 Commits

Author SHA1 Message Date
Pino Toscano
1472fbd903 sysprep: mention globbing in help for --delete
Followup of ed4bcb119c.
2013-12-09 19:37:51 +01:00
Pino Toscano
ed4bcb119c sysprep: allow to specify globbing for --delete
Adapt the globbing part from the old --remote-path work previously
proposed for sysprep [1], allowing --delete to perform globbing when
deleting paths.

[1] https://www.redhat.com/archives/libguestfs/2013-October/msg00045.html
2013-12-09 15:26:43 +00:00
Pino Toscano
c89ffbc152 sysprep: remove more anaconda and tuned logs (RHBZ#1039540). 2013-12-09 15:26:43 +00:00
Richard W.M. Jones
53e45c8280 sysprep: Fix broken test when backend is UML.
This fixes commit cc1888a497.
2013-11-23 09:37:17 +00:00
Richard W.M. Jones
cc1888a497 sysprep: Add a test suite for the --password option. 2013-11-22 15:10:44 +00:00
Richard W.M. Jones
3712249f96 builder/sysprep: Allow accounts to be locked (RHBZ#1028660).
This allows you to select both locked accounts and disabled
passwords.  The two are subtly different concepts.

A locked account [cf. passwd -l] puts "!!" at the beginning of the
shadow password field.  Locking is reversible, because the "!!"  can
be removed, restoring the original password.  Therefore "locked"
acts as a flag in front of an existing selector.

A disabled account has "*" in the password field.  Therefore it has no
password.

Note that an account may be both locked and disabled, although this is
probably not useful.  The shadow password field will contain "!!*".
2013-11-22 15:10:44 +00:00
Richard W.M. Jones
02b5f00b2b builder/sysprep: Allow 'random' as a password selector.
This chooses a random password.
2013-11-22 14:16:09 +00:00
Richard W.M. Jones
91450b5f9a mllib: password: Replace password string with password_selector type.
This is just code motion, there is no functional change.
2013-11-21 17:34:59 +00:00
Richard W.M. Jones
9186438937 builder/sysprep: Describe --password/--root-password option as "selector".
It now appears in the respective man pages as:

  --root-password selector

or:

  --password selector

This avoids confusion from people who think these command line options
take the password directly.
2013-11-21 17:13:37 +00:00
Richard W.M. Jones
f013b15fa1 mllib: Add a utility function for safely reading from /dev/urandom.
OCaml's buffered 'in_channel' has a 64k buffer, so using it to read a
few bytes from /dev/urandom removes a lot of the system's entropy (for
example /proc/sys/kernel/random/entropy_avail goes from ~3000 to 128).

This patch was originally by Edwin Török for builder.ml.  I
generalized it because there are two other places where we did
over-sized reads from /dev/urandom.
2013-11-14 10:52:16 +00:00
Wanlong Gao
e4c9212a8e sysprep: add feature of deleting specified paths
Signed-off-by: Wanlong Gao <gaowanlong@cn.fujitsu.com>
Signed-off-by: Richard W.M. Jones <rjones@redhat.com>
2013-10-29 19:24:08 +00:00
Richard W.M. Jones
5b89dd4aa1 mllib: Create config.ml from configure and use it for --version options.
Also don't internationalize the output of the --version option, as
that isn't useful.
2013-10-22 13:48:41 +01:00
Richard W.M. Jones
b816f29ada firstboot: Ensure firstboot scripts run in command line order.
Previously they ran in effectively random order.
2013-10-15 20:41:22 +01:00
Richard W.M. Jones
a3e5bc7bfa sysprep: firstboot: Don't set `Created_files flag unless files are created. 2013-10-15 20:41:22 +01:00
Richard W.M. Jones
22fc66f6b2 sysprep: Fix documentation for --mount-options. 2013-10-07 14:27:32 +01:00
Richard W.M. Jones
dfa52c63b1 sysprep: Don't remove /var/cache/apt/archives/partial directory.
Removing this directory breaks Ubuntu guests.

This change adds a utility function which removes only files from a
directory.  This is a safer way to clean cache directories etc.
2013-10-07 14:19:38 +01:00
Richard W.M. Jones
08b7c90228 sysprep: Refactor hostname code into a common library. 2013-10-03 22:02:47 +01:00
Richard W.M. Jones
6203c50479 sysprep: Refactor setting random seed code into a common library.
This is just code motion.
2013-10-03 21:42:05 +01:00
Richard W.M. Jones
147b4ee87e sysprep: Refactor firstboot code into a common library. 2013-10-03 21:42:05 +01:00
Richard W.M. Jones
e8a092ae87 sysprep: Refactor password handling code into a common library.
Also the crypt binding is moved to mllib because this is a dependency
of the password library.

This is just code motion.
2013-10-03 21:42:04 +01:00
Richard W.M. Jones
98d56bb102 mllib: error function has ~prog parameter, instead of assuming virt-resize.
$ virt-sparsify a a
  virt-resize: error: you cannot use the same disk image for input and
  output
  If reporting bugs, run virt-resize with the '-d' option and include the
  complete output.

Note (a) it assumes the program is called "virt-resize" which it
isn't, and (b) it assumes the program has a debug option -d which it
doesn't.

This commit changes the error message and adds a -v option to
virt-resize.
2013-10-03 21:42:04 +01:00
Richard W.M. Jones
09a4f42861 uri: Fix two compiler warnings.
We have to include the right header so that guestfs___free_string_list
is declared.  Unfortunately that means ensuring -I src is passed to
the compiler in every tool subdirectory.

Also fix (bogus) compiler warning about incorrect type of the
parameter to caml_copy_string_array.
2013-09-24 13:41:35 +01:00
Richard W.M. Jones
2a6ce79320 tools: Move shared OCaml code to mllib/ directory.
Previously a lot of shared code lived in the resize/ directory for no
particular reason.

This is just code motion.
2013-09-24 13:41:35 +01:00
Richard W.M. Jones
4cdb5bcc5e sysprep: Fix option quoting in manual page.
This fixes commit b65c1c667b.
2013-09-23 13:49:21 +01:00
Wanlong Gao
ea7088b5ca sysprep: remove tmp files
This removes tmp files under /tmp and /var/tmp.

Signed-off-by: Wanlong Gao <gaowanlong@cn.fujitsu.com>
2013-09-06 09:08:14 +01:00
Wanlong Gao
bbd936d32b sysprep: remove firewall rules
If we do not want to keep the original firewall rules, enable
this operation to remove these rules automatically.

Signed-off-by: Wanlong Gao <gaowanlong@cn.fujitsu.com>

RWMJ:

 - Updated po-file.

 - Change documentation to note that it's disabled by default
   and in theory could make the guest exploitable.
2013-09-05 13:10:00 +01:00
Wanlong Gao
efcf474d42 sysprep: remove log file of ntp
Signed-off-by: Wanlong Gao <gaowanlong@cn.fujitsu.com>
2013-09-05 10:09:58 +01:00
Wanlong Gao
c76dabf9ec sysprep: remove log file of gdm
Signed-off-by: Wanlong Gao <gaowanlong@cn.fujitsu.com>
2013-09-05 10:09:58 +01:00
Wanlong Gao
1baf716a7e sysprep: remove log file of sysstat
Signed-off-by: Wanlong Gao <gaowanlong@cn.fujitsu.com>
2013-09-05 10:09:58 +01:00
Wanlong Gao
e02c4e519e sysprep: remove /var/log/audit/audit.log
audit.log is already included in /var/log/audit/*.

Signed-off-by: Wanlong Gao <gaowanlong@cn.fujitsu.com>
2013-09-05 10:09:58 +01:00
Nikita Menkovich
f33343a5c1 sysprep: added --mount-options option to mount selected partitions with options. 2013-08-19 08:31:55 +01:00
Richard W.M. Jones
93f8baeb9a sysprep: Add "notes" field for notes on shortcomings, bugs, etc.
Instead of keeping this information as comments in the source, put it
into the virt-sysprep(1) man page.
2013-08-03 10:59:48 +01:00
Richard W.M. Jones
4cdbae926b sysprep: Various code refactorings of the operations.
- Use 'op' instead of 'xxx_op' for operation table.
 - Add a 'defaults' for the operation table and remove any default
   values.

This is just code motion and there is no functional change.
2013-08-03 10:25:19 +01:00
Richard W.M. Jones
44df867382 sysprep: Allow root and non-root passwords to be set.
This adds a virt-sysprep 'password' operation which adds the
following command line options:

  --root-password     Set the guest's root password.
  --password          Set any guest password.
2013-08-02 15:37:30 +01:00
Richard W.M. Jones
5deea7fce6 sysprep: Disable fs-uuids operation by default.
Disable this operation because it is more likely than not to break
Linux guests.

To fix this properly will involve finding all the places in the guest
where the UUIDs are used to locate and mount filesystems,
eg. /etc/fstab and possibly initramfs.

This updates commit 8965368eb8.
2013-08-02 15:17:24 +01:00
Nicholas Strugnell
94e5ea6b5e sysprep: rhn_systemid: delete osad-auth.conf file in RHN configuration 2013-07-31 16:33:17 +01:00
Richard W.M. Jones
b65c1c667b sysprep: Allow -a URI options to be used (RHBZ#968875).
This allows you to sysprep a remote guest by doing eg:

  virt-sysprep -a ssh://remote.example.com/disk.img
2013-07-30 15:37:16 +01:00
Richard W.M. Jones
44c5026d9e sysprep: On RHEL, firstboot script should be called S99... not 99.
Thanks: Nicholas Strugnell
2013-07-26 15:42:36 +01:00
Richard W.M. Jones
8965368eb8 sysprep: Add new fs-uuids operation.
This creates new random UUIDs for all filesystems in a guest.
2013-07-22 13:52:23 +01:00
Richard W.M. Jones
dd21bec400 sysprep: New operation to remove RPM database files.
See:
https://lists.fedoraproject.org/pipermail/devel/2013-June/184389.html
2013-06-24 21:06:58 +01:00
Richard W.M. Jones
ef107448e8 Add followsymlinks flag to is-file, is-dir, is-blockdev, is-chardev, is-fifo and is-socket APIs.
This adds an extra optional boolean 'followsymlinks' flag to those 6
is-* APIs.  If the flag is true, then symlinks are followed, ie. we
use stat instead of lstat in the test.

For the rationale behind this change, see:
https://bugzilla.redhat.com/show_bug.cgi?id=974489
2013-06-14 10:53:17 +01:00
Richard W.M. Jones
49bdaabc7d build: Add common-rules.mk, common rules for all Makefiles.
This file is mainly a central place to:

 - include localenv if it exists, and

 - define the RHEL 5 backwards compatibility macros, instead of
   spreading them over every other file.
2013-06-04 12:41:11 +01:00
Richard W.M. Jones
5a69428f5e sysprep: Be prepared for CentOS etc. 7 which will act the same way as RHEL 7. 2013-05-21 13:59:54 +01:00
Richard W.M. Jones
d2abdddf61 sysprep: Update /etc/machine-info on Fedora 18+, RHEL 7+ (RHBZ#890027). 2013-05-21 13:59:54 +01:00
Richard W.M. Jones
0daa83cc91 sysprep: Refactor code, introducing a function to replace a line in a file. 2013-05-21 13:59:54 +01:00
Richard W.M. Jones
333337b6a9 debian: Add OCaml .depend files to DISTCLEANFILES.
Otherwise debuild complains that these files have been created after
it does a 'make distclean'.
2013-05-02 13:18:12 +01:00
Richard W.M. Jones
fecc74e080 tests: sysprep: Specify list of operations explicitly.
This commit makes no functional change on its own, but it allows us to
filter out failing operations on Ubuntu.
2013-04-22 16:18:19 +01:00
Richard W.M. Jones
6185aa4e38 ocaml tools: Enable parallel builds.
In particular, building virt-sysprep is slow because there are so many
modules.  Enable parallel builds.  If it breaks, we should fix it, not
work around it.
2013-03-28 20:15:51 +00:00
Richard W.M. Jones
6c9a7fe561 Add --long-options option to most tools.
For example:

$ guestfish --long-options
--add
--cmd-help
--connect
--csh
--domain
--echo-keys
[etc.]

The idea of this is to make it easier to write a bash completion
script that accurately expands --<TAB> options for each command.
2013-03-28 14:46:20 +00:00
Richard W.M. Jones
05ba393724 OCaml tools: Use Common_gettext and Common_utils modules.
Share these modules across all three tools virt-resize, virt-sparsify
and virt-sysprep.

This is mostly code motion.
2013-03-28 14:00:42 +00:00