91b8d13eda
On many systems the requiretty sudoers option is turned on by default. With "requiretty" option the sudo ensures the user have real tty access. Just several "su" variant has an option for skipping the new session creation step. Only one session can posses a tty, so after a "su -c" the sudo will not work. We will use sudo instead of su, when we create the stack account. This change adds new variable the STACK_USER for service username. Change-Id: I1b3fbd903686884e74a5a22d82c0c0890e1be03c
74 lines
1.8 KiB
Bash
Executable File
74 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# **copy_dev_environment_to_uec.sh**
|
|
|
|
# Echo commands
|
|
set -o xtrace
|
|
|
|
# Exit on error to stop unexpected errors
|
|
set -o errexit
|
|
|
|
# Keep track of the current directory
|
|
TOOLS_DIR=$(cd $(dirname "$0") && pwd)
|
|
TOP_DIR=$(cd $TOOLS_DIR/..; pwd)
|
|
|
|
# Import common functions
|
|
. $TOP_DIR/functions
|
|
|
|
# Change dir to top of devstack
|
|
cd $TOP_DIR
|
|
|
|
# Source params
|
|
source ./stackrc
|
|
|
|
# Echo usage
|
|
usage() {
|
|
echo "Add stack user and keys"
|
|
echo ""
|
|
echo "Usage: $0 [full path to raw uec base image]"
|
|
}
|
|
|
|
# Make sure this is a raw image
|
|
if ! qemu-img info $1 | grep -q "file format: raw"; then
|
|
usage
|
|
exit 1
|
|
fi
|
|
|
|
# Mount the image
|
|
DEST=/opt/stack
|
|
STAGING_DIR=/tmp/`echo $1 | sed "s/\//_/g"`.stage.user
|
|
mkdir -p $STAGING_DIR
|
|
umount $STAGING_DIR || true
|
|
sleep 1
|
|
mount -t ext4 -o loop $1 $STAGING_DIR
|
|
mkdir -p $STAGING_DIR/$DEST
|
|
|
|
# Create a stack user that is a member of the libvirtd group so that stack
|
|
# is able to interact with libvirt.
|
|
chroot $STAGING_DIR groupadd libvirtd || true
|
|
chroot $STAGING_DIR useradd $DEFAULT_STACK_USER -s /bin/bash -d $DEST -G libvirtd || true
|
|
|
|
# Add a simple password - pass
|
|
echo $DEFAULT_STACK_USER:pass | chroot $STAGING_DIR chpasswd
|
|
|
|
# Configure sudo
|
|
( umask 226 && echo "$DEFAULT_STACK_USER ALL=(ALL) NOPASSWD:ALL" \
|
|
> $STAGING_DIR/etc/sudoers.d/50_stack_sh )
|
|
|
|
# Copy over your ssh keys and env if desired
|
|
cp_it ~/.ssh $STAGING_DIR/$DEST/.ssh
|
|
cp_it ~/.ssh/id_rsa.pub $STAGING_DIR/$DEST/.ssh/authorized_keys
|
|
cp_it ~/.gitconfig $STAGING_DIR/$DEST/.gitconfig
|
|
cp_it ~/.vimrc $STAGING_DIR/$DEST/.vimrc
|
|
cp_it ~/.bashrc $STAGING_DIR/$DEST/.bashrc
|
|
|
|
# Copy devstack
|
|
rm -rf $STAGING_DIR/$DEST/devstack
|
|
cp_it . $STAGING_DIR/$DEST/devstack
|
|
|
|
# Give stack ownership over $DEST so it may do the work needed
|
|
chroot $STAGING_DIR chown -R $DEFAULT_STACK_USER $DEST
|
|
|
|
# Unmount
|
|
umount $STAGING_DIR
|