github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/acceptancetests/repository/charms/jenkins-juju-ci/hooks/install (about)

     1  #!/bin/bash
     2  
     3  set -eux
     4  
     5  status-set maintenance "Installing: configuring apt" || true
     6  SERIES=$(lsb_release -sc)
     7  DEB_LINE="http://archive.ubuntu.com/ubuntu/ $SERIES-proposed restricted main multiverse universe"
     8  apt-add-repository -y ppa:juju/stable
     9  if [[ ! -f /etc/apt/preferences.d/proposed-updates ]]; then
    10      cat << EOC | tee /etc/apt/preferences.d/proposed-updates
    11  Package: *
    12  Pin: release a=$SERIES-proposed
    13  Pin-Priority: 400
    14  EOC
    15  fi
    16  if ! grep "$SERIES-proposed" /etc/apt/sources.list; then
    17      echo "deb $DEB_LINE" | tee -a /etc/apt/sources.list
    18  fi
    19  
    20  status-set maintenance "Installing: installing packages" || true
    21  apt-get update
    22  apt-get install -y ntp make bzr git lxc
    23  
    24  status-set maintenance "Installing: moving directories to big partition" || true
    25  if [[ -n $(df -h | grep /mnt | tr -s ' ' |  cut -d ' ' -f 4 | grep G) ]]; then
    26      if [[ ! -d /mnt/jenkins ]]; then
    27          cp -rp /var/lib/jenkins /mnt
    28          mv /var/lib/jenkins /var/lib/jenkins.old
    29          ln -s /mnt/jenkins /var/lib/jenkins
    30          chown -h jenkins:jenkins /var/lib/jenkins
    31      fi
    32      if [[ ! -d /mnt/lxc ]]; then
    33          cp -rp /var/lib/lxc /mnt
    34          mv /var/lib/lxc /var/lib/lxc.old
    35          ln -s /mnt/lxc /var/lib/lxc
    36      fi
    37      if [[ ! -d /mnt/lxd && -d /var/lib/lxd ]]; then
    38          cp -rp /var/lib/lxd /mnt
    39          mv /var/lib/lxd /var/lib/lxd.old
    40          ln -s /mnt/lxd /var/lib/lxd
    41          chown -h lxd:lxd /var/lib/lxd
    42      fi
    43  fi
    44  
    45  status-set maintenance "Installing: setting up jenkins permissions" || true
    46  usermod -a -G lxd jenkins || true
    47  if [[ ! -f /etc/sudoers.d/91-jenkins ]]; then
    48      echo 'jenkins ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/91-jenkins
    49  fi
    50  chmod 0440 /etc/sudoers.d/91-jenkins
    51  
    52  status-set maintenance "Installing: setting up jenkins ssh" || true
    53  test -d /var/lib/jenkins/.ssh/ || mkdir -p /var/lib/jenkins/.ssh/
    54  if [[ ! -f /var/lib/jenkins/.ssh/authorized_keys ]]; then
    55      cat /home/ubuntu/.ssh/authorized_keys | tee -a /var/lib/jenkins/.ssh/authorized_keys
    56  fi
    57  chmod 700 /var/lib/jenkins/.ssh/
    58  chmod 600 /var/lib/jenkins/.ssh/authorized_keys
    59  chown -R jenkins:jenkins /var/lib/jenkins/.ssh
    60  
    61  status-set maintenance "Installed" || true