Skip to content

Commit

Permalink
upstream-centos (#426)
Browse files Browse the repository at this point in the history
* update user release.conf and fix typos.
* Upstream upgrade to CentOS 7.5.  Closes #425
  • Loading branch information
padthaitofuhot committed May 22, 2018
1 parent 5585423 commit 566e388
Show file tree
Hide file tree
Showing 6 changed files with 209 additions and 5 deletions.
200 changes: 200 additions & 0 deletions bootstrap_plugins/centos75.plugin.sh
@@ -0,0 +1,200 @@
#@IgnoreInspection BashAddShebang

# Copyright (c) 2015 EMC Corporation
# All Rights Reserved
#
# This software contains the intellectual property of EMC Corporation
# or is licensed to EMC Corporation from third parties. Use of this
# software and the intellectual property contained therein is expressly
# limited to the terms and conditions of the License Agreement under which
# it is provided by or on behalf of EMC.

# OS Support library for CentOS 7.5

os_supported=true

# Docker binary
docker_binary='/bin/docker'

# packages to clean up during preflight
# Don't `yum autoremove curl`. Yum is a dependency and it will throw errors.
list_preflight_packages="git nfs-client nfs-tools rsync wget ntp docker vim pigz gdisk aria2 htop iotop iftop multitail dstat jq python-docker-py dkms qemu-guest-agent open-vm-tools open-vm-tools-desktop docker"

# Do any OS-specific tasks that must be done prior to bootstrap
do_preflight() {
rm_repo_pkg "$list_preflight_packages"
}

# packages to install before others
list_prefix_packages='wget curl epel-release yum-utils'

# script to run for installing prefix_packages
in_prefix_packages() {
in_repo_pkg "$list_prefix_packages"
}

# packages to install
# list_general_packages='yum-utils git python-pip python-docker-py'
list_general_packages='git ntp docker vim rsync pigz gdisk aria2'

# script to run for installing general_packages
in_general_packages() {
in_repo_pkg "$list_general_packages"
# if ! docker version; then
# curl -fsSL https://get.docker.com/ | sudo sh
# fi
sudo systemctl enable docker
sudo systemctl start docker
sudo usermod -aG docker $(whoami)
}

# packages to install after others
list_suffix_packages='htop iotop iftop multitail dstat jq python-docker-py'
# list_suffix_packages='htop jq pigz gdisk aria2 python-docker-py'

# script to run for installing suffix_packages
in_suffix_packages() {
in_repo_pkg "$list_suffix_packages"

# Install Rocker
curl -fsSL ${rocker_artifact_url} \
| sudo tar -xzC /usr/local/bin && sudo chmod +x /usr/local/bin/rocker
}

# packages to install if a VM
list_vm_packages='dkms qemu-guest-agent open-vm-tools open-vm-tools-desktop'

# command to run for installing vm_packages
in_vm_packages() {
in_repo_pkg "$list_vm_packages"
# return 0
}

# command to install one or more os package manager package
in_repo_pkg() {
retry_with_timeout 10 300 sudo yum -y install $*
}

rm_repo_pkg() {
retry_with_timeout 10 300 sudo yum -y autoremove $*
}

# command to update all packages in the os package manager
up_repo_pkg_all() {
retry_with_timeout 10 300 sudo yum -y update
}

# command to rebuild the os package manager's database
up_repo_db() {
retry_with_timeout 10 300 sudo yum -y makecache
}

# command to set os package manager proxy
set_repo_proxy_conf() {
sudo sed -i -e '/^proxy=/d' /etc/yum.conf
echo "proxy=${http_proxy}" \
| append /etc/yum.conf
}

# command to set os package manager to keep its cache
set_repo_keepcache_conf() {
sudo sed -i -e '/^keepcache=/d' /etc/yum.conf
echo "keepcache=1" \
| append /etc/yum.conf
}

# idempotent config script to fixup repos to properly use proxycaches
set_repo_cacheable_idempotent() {
sudo sed -i -e 's/^#baseurl=/baseurl=/' /etc/yum.repos.d/*
sudo sed -i -e 's/^mirrorlist=/#mirrorlist=/' /etc/yum.repos.d/*
}

set_repo_mirror_idempotent() {
# sudo sed -i -e "s#http:///centos#http://${mirror_val}/centos#g" /etc/yum.repos.d/*
sudo sed -i -e "s#http://.*/centos#http://${mirror_val}/centos#g" /etc/yum.repos.d/*
}

# command to set the proxy for the whole OS
set_os_proxy() {
sudo sed -i -e '/_proxy/d' /etc/environment
echo -n "http_proxy=${http_proxy}\nhttps_proxy=${http_proxy}\nftp_proxy=${http_proxy}\n" \
| append /etc/environment
if $mirror_flag; then
echo -n "no_proxy=${mirror_val}\n" | append /etc/environment
fi
}

# command to determine if the OS needs restarting after package updates
get_os_needs_restarting() {
if ! [ -z "$(sudo /usr/bin/needs-restarting)" ]; then
return 0
else
return 1
fi
}

# command to reboot the system
do_reboot() {
sudo reboot
}

# Command to configure docker's proxy under centos flavored systemd
set_docker_proxy() {
local tmpconf="/etc/systemd/system/docker.service.d/http-proxy.conf"
if ! [ -d "$(dirname $tmpconf)" ]; then
sudo mkdir "$(dirname $tmpconf)"
fi
log "sed error is OK here if the proxy config file does not yet exist."
sudo sed -i -e '/HTTP_PROXY/d' "$tmpconf"
echo "Environment=\"HTTP_PROXY=${http_proxy}\" \"NO_PROXY=localhost,127.0.0.1,$(hostname),$(hostname -f)\"" \
| append "$tmpconf"
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl status docker
}

# command to add mitm cert to docker trust store
set_docker_reg_cert() {
local registry="${1}"
local cert="${2}"
if ! [ -d "/etc/docker/certs.d/${registry}" ]; then
sudo mkdir -p "/etc/docker/certs.d/${registry}"
sudo cp "${cert}" "/etc/docker/certs.d/${registry}/ca.crt"
else
if [ -f "/etc/docker/certs.d/${registry}/ca.crt" ]; then
echo "Reusing existing /etc/docker/certs.d/${registry}/ca.crt"
else
sudo cp "${cert}" "/etc/docker/certs.d/${registry}/ca.crt"
fi
fi
set_mitm_cert "${cert}"
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl status docker
}

# command to add mitm cert to local trust store
set_mitm_cert() {
sudo cp "${1}" "/etc/pki/ca-trust/source/anchors/$(basename ${1}).crt"
sudo update-ca-trust extract
}

do_post_install() {
# Disable postfix since we don't need an MTA
sudo systemctl disable --now postfix
}

override_dhcp_dns() {
nameserver_list="${1}"
sudo sed -i -e 's/PEERDNS="yes"/PEERDNS="no"/' /etc/sysconfig/network-scripts/ifcfg-*
sudo sed -i -e '/DNS[0-9]=/d' /etc/sysconfig/network-scripts/ifcfg-*
sudo sed -i -e '/nameserver/d' /etc/resolv.conf
nsnumber=1
for nameserver in $(echo ${nameserver_list} | tr ',' ' '); do
echo "nameserver ${nameserver}" | append /etc/resolv.conf
for script in /etc/sysconfig/network-scripts/ifcfg-*; do
echo "DNS${nsnumber}=${nameserver}" | append "${script}"
done
nsnumber=$((nsnumber++))
done
}
4 changes: 3 additions & 1 deletion bootstrap_plugins/os-router.plugin.sh
Expand Up @@ -67,7 +67,9 @@ route_os() {
centos\ linux\ release\ 7.4*)
source ${plugins}/centos74.plugin.sh
;;

centos\ linux\ release\ 7.5*)
source ${plugins}/centos75.plugin.sh
;;
# dockerized\ centos\ linux\ release\ 7.2*)
# source ${plugins}/centos72-docker.plugin.sh
# ;;
Expand Down
4 changes: 3 additions & 1 deletion release.conf
Expand Up @@ -12,9 +12,11 @@
# bootstrap.sh for that.
#
### Older versions ( 3.1 )
# release_artifact="emccorp/ecs-software-3.0.1"
# release_artifact="emccorp/ecs-software-3.1.0"
# release_tag="3.1.0.0"
# release_tag="3.1.0.1"
# release_tag="3.1.0.2"
# release_tag="3.1.0.3"
# release_tag="latest"
#
### Older versions ( 3.0 )
Expand Down
2 changes: 1 addition & 1 deletion ui/etc/config.yml
Expand Up @@ -13,7 +13,7 @@
---
ui:
name: ECS Community Edition Install Node
version: 2.7.0
version: 2.7.1
host_root_dir: /opt/emc/ecs-install
state_file: /opt/state.yml
deploy_file: /opt/deploy.yml
Expand Down
2 changes: 1 addition & 1 deletion ui/etc/release.conf
Expand Up @@ -33,7 +33,7 @@ image_name='ecs-install'
tag='latest'
ver_maj='2'
ver_min='7'
ver_rev='0'
ver_rev='1'
ver_tag='r'
serial=0

Expand Down
2 changes: 1 addition & 1 deletion ui/setup.py
Expand Up @@ -3,7 +3,7 @@

setup(
name='ecsdeploy',
version='2.7.0',
version='2.7.1',
packages=find_packages(),
scripts=['ui.py',
'ecsdeploy.py',
Expand Down

0 comments on commit 566e388

Please sign in to comment.