This is working version with completed documentation

This commit is contained in:
2025-09-04 15:08:39 +08:00
parent 103eed2982
commit a3d0ec041b
49 changed files with 2257 additions and 3 deletions
+42
View File
@@ -0,0 +1,42 @@
#!/bin/bash
/vagrant/provision/fix-centos-repos.sh
/vagrant/provision/fix-openshift-repos.sh
# Dependências
yum install -y curl vim device-mapper-persistent-data lvm2 epel-release wget git net-tools bind-utils yum-utils iptables-services bridge-utils bash-completion kexec-tools sos psacct
# Install and start Docker
yum install -y docker
systemctl start docker
systemctl enable docker
systemctl status docker
#docker pull docker.io/openshift/origin-pod:v3.11
#docker pull docker.io/openshift/origin-node:v3.11
#docker pull docker.io/openshift/origin-docker-builder:v3.11.0
#docker pull docker.io/openshift/origin-deployer:v3.11
#docker pull docker.io/openshift/origin-haproxy-router:v3.11
#docker pull docker.io/cockpit/kubernetes
#docker pull docker.io/openshift/origin-docker-registry:v3.11
#docker pull docker.io/openshift/origin-control-plane:v3.11
#docker pull quay.io/coreos/etcd:v3.2.22
yum install -y container-selinux libsemanage-python httpd-tools java python-passlib pyOpenSSL PyYAML python-jinja2 python-paramiko python-setuptools python2-cryptography sshpass
rpm -i https://releases.ansible.com/ansible/rpm/release/epel-7-x86_64/ansible-2.5.7-1.el7.ans.noarch.rpm
cp /vagrant/files/hosts-allinone /etc/ansible/hosts
cp /vagrant/files/ansible.cfg /etc/ansible/ansible.cfg
cp /vagrant/files/key /root/.ssh/id_rsa; chmod 400 /root/.ssh/id_rsa
cp /vagrant/files/key.pub /root/.ssh/id_rsa.pub
sed -i -e "s/#host_key_checking/host_key_checking/" /etc/ansible/ansible.cfg
sed -i -e "s@#private_key_file = /path/to/file@private_key_file = /root/.ssh/id_rsa@" /etc/ansible/ansible.cfg
git clone -b release-3.11 --single-branch https://github.com/openshift/openshift-ansible /root/openshift-ansible
cd /root/openshift-ansible
sed -i 's/openshift.common.ip/openshift.common.public_ip/' roles/openshift_control_plane/templates/master.yaml.v1.j2
ansible-playbook /root/openshift-ansible/playbooks/prerequisites.yml
/vagrant/provision/fix-openshift-repos.sh
ansible-playbook /root/openshift-ansible/playbooks/deploy_cluster.yml
mkdir -p /etc/origin/master && htpasswd -Bbc /etc/origin/master/htpasswd developer 4linux
+32
View File
@@ -0,0 +1,32 @@
#!/bin/bash
# Dependências
yum install -y curl vim device-mapper-persistent-data lvm2 epel-release wget git net-tools bind-utils yum-utils iptables-services bridge-utils bash-completion kexec-tools sos psacct
#docker pull docker.io/openshift/origin-pod:v3.11
#docker pull docker.io/openshift/origin-node:v3.11
#docker pull docker.io/openshift/origin-docker-builder:v3.11.0
#docker pull docker.io/openshift/origin-deployer:v3.11
#docker pull docker.io/openshift/origin-haproxy-router:v3.11
#docker pull docker.io/cockpit/kubernetes
#docker pull docker.io/openshift/origin-docker-registry:v3.11
#docker pull docker.io/openshift/origin-control-plane:v3.11
#docker pull quay.io/coreos/etcd:v3.2.22
yum install -y java python-passlib pyOpenSSL PyYAML python-jinja2 python-paramiko python-setuptools python2-cryptography sshpass
rpm -i https://releases.ansible.com/ansible/rpm/release/epel-7-x86_64/ansible-2.5.7-1.el7.ans.noarch.rpm
cp /vagrant/files/hosts-allinone /etc/ansible/hosts
cp /vagrant/files/ansible.cfg /etc/ansible/ansible.cfg
cp /vagrant/files/key /root/.ssh/id_rsa; chmod 400 /root/.ssh/id_rsa
cp /vagrant/files/key.pub /root/.ssh/id_rsa.pub
sed -i -e "s/#host_key_checking/host_key_checking/" /etc/ansible/ansible.cfg
sed -i -e "s@#private_key_file = /path/to/file@private_key_file = /root/.ssh/id_rsa@" /etc/ansible/ansible.cfg
git clone -b release-3.11 --single-branch https://github.com/openshift/openshift-ansible /root/openshift-ansible
cd /root/openshift-ansible
sed -i 's/openshift.common.ip/openshift.common.public_ip/' roles/openshift_control_plane/templates/master.yaml.v1.j2
ansible-playbook /root/openshift-ansible/playbooks/prerequisites.yml
ansible-playbook /root/openshift-ansible/playbooks/deploy_cluster.yml
htpasswd -Bbc /etc/origin/master/htpasswd developer 4linux
+35
View File
@@ -0,0 +1,35 @@
#!/bin/bash
/vagrant/provision/fix-centos-repos.sh
/vagrant/provision/fix-openshift-repos.sh
# Dependências
yum install -y curl vim device-mapper-persistent-data lvm2 epel-release wget git net-tools bind-utils yum-utils iptables-services bridge-utils bash-completion kexec-tools sos psacct
#docker pull docker.io/openshift/origin-pod:v3.11
#docker pull docker.io/openshift/origin-node:v3.11
#docker pull docker.io/openshift/origin-docker-builder:v3.11.0
#docker pull docker.io/openshift/origin-deployer:v3.11
#docker pull docker.io/openshift/origin-haproxy-router:v3.11
#docker pull docker.io/cockpit/kubernetes
#docker pull docker.io/openshift/origin-docker-registry:v3.11
#docker pull docker.io/openshift/origin-control-plane:v3.11
#docker pull quay.io/coreos/etcd:v3.2.22
yum install -y httpd-tools java python-passlib pyOpenSSL PyYAML python-jinja2 python-paramiko python-setuptools python2-cryptography sshpass
rpm -i https://releases.ansible.com/ansible/rpm/release/epel-7-x86_64/ansible-2.5.7-1.el7.ans.noarch.rpm
cp /vagrant/files/hosts-allinone /etc/ansible/hosts
cp /vagrant/files/ansible.cfg /etc/ansible/ansible.cfg
cp /vagrant/files/key /root/.ssh/id_rsa; chmod 400 /root/.ssh/id_rsa
cp /vagrant/files/key.pub /root/.ssh/id_rsa.pub
sed -i -e "s/#host_key_checking/host_key_checking/" /etc/ansible/ansible.cfg
sed -i -e "s@#private_key_file = /path/to/file@private_key_file = /root/.ssh/id_rsa@" /etc/ansible/ansible.cfg
git clone -b release-3.11 --single-branch https://github.com/openshift/openshift-ansible /root/openshift-ansible
cd /root/openshift-ansible
sed -i 's/openshift.common.ip/openshift.common.public_ip/' roles/openshift_control_plane/templates/master.yaml.v1.j2
ansible-playbook /root/openshift-ansible/playbooks/prerequisites.yml
ansible-playbook /root/openshift-ansible/playbooks/deploy_cluster.yml
mkdir -p /etc/origin/master && htpasswd -Bbc /etc/origin/master/htpasswd developer 4linux
+34
View File
@@ -0,0 +1,34 @@
#!/bin/bash
/vagrant/provision/fix-centos-repos.sh
# Dependências
yum install -y curl vim device-mapper-persistent-data lvm2 epel-release wget git net-tools bind-utils yum-utils iptables-services bridge-utils bash-completion kexec-tools sos psacct
#docker pull docker.io/openshift/origin-pod:v3.11
#docker pull docker.io/openshift/origin-node:v3.11
#docker pull docker.io/openshift/origin-docker-builder:v3.11.0
#docker pull docker.io/openshift/origin-deployer:v3.11
#docker pull docker.io/openshift/origin-haproxy-router:v3.11
#docker pull docker.io/cockpit/kubernetes
#docker pull docker.io/openshift/origin-docker-registry:v3.11
#docker pull docker.io/openshift/origin-control-plane:v3.11
#docker pull quay.io/coreos/etcd:v3.2.22
yum install -y java python-passlib pyOpenSSL PyYAML python-jinja2 python-paramiko python-setuptools python2-cryptography sshpass
rpm -i https://releases.ansible.com/ansible/rpm/release/epel-7-x86_64/ansible-2.5.7-1.el7.ans.noarch.rpm
cp /vagrant/files/hosts-allinone /etc/ansible/hosts
cp /vagrant/files/ansible.cfg /etc/ansible/ansible.cfg
cp /vagrant/files/key /root/.ssh/id_rsa; chmod 400 /root/.ssh/id_rsa
cp /vagrant/files/key.pub /root/.ssh/id_rsa.pub
sed -i -e "s/#host_key_checking/host_key_checking/" /etc/ansible/ansible.cfg
sed -i -e "s@#private_key_file = /path/to/file@private_key_file = /root/.ssh/id_rsa@" /etc/ansible/ansible.cfg
git clone -b release-3.11 --single-branch https://github.com/openshift/openshift-ansible /root/openshift-ansible
cd /root/openshift-ansible
sed -i 's/openshift.common.ip/openshift.common.public_ip/' roles/openshift_control_plane/templates/master.yaml.v1.j2
ansible-playbook /root/openshift-ansible/playbooks/prerequisites.yml
ansible-playbook /root/openshift-ansible/playbooks/deploy_cluster.yml
htpasswd -Bbc /etc/origin/master/htpasswd developer 4linux
+33
View File
@@ -0,0 +1,33 @@
#!/bin/bash
/vagrant/provision/fix-centos-repos.sh
yum -y install vim openldap-servers openldap-clients
# LDAP
systemctl enable slapd
systemctl start slapd
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
ldapmodify -Y EXTERNAL -H ldapi:/// -f /vagrant/files/ldap.ldif
ldapadd -h 'localhost' -D 'cn=admin,dc=extras,dc=example,dc=com' -w 'okdldap' -f /vagrant/files/base.ldif
ldapadd -h 'localhost' -D 'cn=admin,dc=extras,dc=example,dc=com' -w 'okdldap' -f /vagrant/files/users.ldif
ldapadd -h 'localhost' -D 'cn=admin,dc=extras,dc=example,dc=com' -w 'okdldap' -f /vagrant/files/groups.ldif
# NFS
> /etc/exports
for X in $(seq 0 9); do
mkdir -p /srv/nfs/v$X
echo "/srv/nfs/v$X 172.27.11.0/24(rw,all_squash)" >> /etc/exports
done
chmod 0700 /srv/nfs/v*
chown nfsnobody: /srv/nfs/v*
exportfs -a
systemctl start rpcbind nfs-server
systemctl enable rpcbind nfs-server
+31
View File
@@ -0,0 +1,31 @@
#!/bin/bash
yum -y install vim openldap-servers openldap-clients
# LDAP
systemctl enable slapd
systemctl start slapd
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
ldapmodify -Y EXTERNAL -H ldapi:/// -f /vagrant/files/ldap.ldif
ldapadd -h 'localhost' -D 'cn=admin,dc=extras,dc=example,dc=com' -w 'okdldap' -f /vagrant/files/base.ldif
ldapadd -h 'localhost' -D 'cn=admin,dc=extras,dc=example,dc=com' -w 'okdldap' -f /vagrant/files/users.ldif
ldapadd -h 'localhost' -D 'cn=admin,dc=extras,dc=example,dc=com' -w 'okdldap' -f /vagrant/files/groups.ldif
# NFS
> /etc/exports
for X in $(seq 0 9); do
mkdir -p /srv/nfs/v$X
echo "/srv/nfs/v$X 172.27.11.0/24(rw,all_squash)" >> /etc/exports
done
chmod 0700 /srv/nfs/v*
chown nfsnobody: /srv/nfs/v*
exportfs -a
systemctl start rpcbind nfs-server
systemctl enable rpcbind nfs-server
+42
View File
@@ -0,0 +1,42 @@
#!/bin/bash
# Fix CentOS 7 repository URLs to use vault.centos.org
echo "Fixing CentOS 7 repository URLs..."
# Backup original repo files
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 2>/dev/null || true
# Create new CentOS-Base.repo pointing to vault.centos.org
cat > /etc/yum.repos.d/CentOS-Base.repo << 'REPO_EOF'
[base]
name=CentOS-7 - Base
baseurl=http://vault.centos.org/7.9.2009/os/x86_64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[updates]
name=CentOS-7 - Updates
baseurl=http://vault.centos.org/7.9.2009/updates/x86_64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[extras]
name=CentOS-7 - Extras
baseurl=http://vault.centos.org/7.9.2009/extras/x86_64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[centosplus]
name=CentOS-7 - Plus
baseurl=http://vault.centos.org/7.9.2009/centosplus/x86_64/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
REPO_EOF
# Clean yum cache
yum clean all
yum makecache
+45
View File
@@ -0,0 +1,45 @@
#!/bin/bash
# Comprehensive fix for OpenShift Origin repository issues
echo "Fixing OpenShift Origin repository URLs..."
# Fix the main CentOS-OpenShift-Origin311.repo file to use vault.centos.org
cat > /etc/yum.repos.d/CentOS-OpenShift-Origin311.repo << 'REPO_EOF'
[centos-openshift-origin311]
name=CentOS OpenShift Origin
baseurl=http://vault.centos.org/centos/7/paas/x86_64/openshift-origin311/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-PaaS
[centos-openshift-origin311-testing]
name=CentOS OpenShift Origin Testing
baseurl=http://vault.centos.org/centos/7/paas/x86_64/openshift-origin311/
enabled=0
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-PaaS
[centos-openshift-origin311-debuginfo]
name=CentOS OpenShift Origin DebugInfo
baseurl=http://vault.centos.org/centos/7/paas/x86_64/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-PaaS
[centos-openshift-origin311-source]
name=CentOS OpenShift Origin Source
baseurl=http://vault.centos.org/centos/7/paas/Source/openshift-origin311/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-PaaS
REPO_EOF
# Also handle any other variants
if [ -f /etc/yum.repos.d/centos-openshift-origin311.repo ]; then
rm -f /etc/yum.repos.d/centos-openshift-origin311.repo
fi
# Clean yum cache to remove any cached broken repo data
yum clean all
echo "OpenShift Origin repository URLs fixed to use vault.centos.org"
+57
View File
@@ -0,0 +1,57 @@
#!/bin/bash
# Persistent repository fix that runs continuously
echo "Setting up persistent repository fix..."
# Create a script that will fix repos whenever they're created
cat > /usr/local/bin/fix-openshift-repos-monitor.sh << 'MONITOR_EOF'
#!/bin/bash
while true; do
if [ -f /etc/yum.repos.d/CentOS-OpenShift-Origin311.repo ]; then
if grep -q "mirror.centos.org" /etc/yum.repos.d/CentOS-OpenShift-Origin311.repo; then
echo "$(date): Fixing OpenShift Origin repository URLs..."
cat > /etc/yum.repos.d/CentOS-OpenShift-Origin311.repo << 'REPO_EOF'
[centos-openshift-origin311]
name=CentOS OpenShift Origin
baseurl=http://vault.centos.org/centos/7/paas/x86_64/openshift-origin311/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-PaaS
[centos-openshift-origin311-testing]
name=CentOS OpenShift Origin Testing
baseurl=http://vault.centos.org/centos/7/paas/x86_64/openshift-origin311/
enabled=0
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-PaaS
[centos-openshift-origin311-debuginfo]
name=CentOS OpenShift Origin DebugInfo
baseurl=http://vault.centos.org/centos/7/paas/x86_64/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-PaaS
[centos-openshift-origin311-source]
name=CentOS OpenShift Origin Source
baseurl=http://vault.centos.org/centos/7/paas/Source/openshift-origin311/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-PaaS
REPO_EOF
yum clean all
echo "$(date): Repository URLs fixed to use vault.centos.org"
fi
fi
sleep 5
done
MONITOR_EOF
chmod +x /usr/local/bin/fix-openshift-repos-monitor.sh
# Start the monitor in background
nohup /usr/local/bin/fix-openshift-repos-monitor.sh > /var/log/repo-fix.log 2>&1 &
echo "Persistent repository fix started"
+36
View File
@@ -0,0 +1,36 @@
#!/bin/bash
/vagrant/provision/fix-centos-repos.sh
/vagrant/provision/fix-repos-persistent.sh
# Dependências
yum install -y curl vim device-mapper-persistent-data lvm2 epel-release wget git net-tools bind-utils yum-utils iptables-services bridge-utils bash-completion kexec-tools sos psacct docker python-ipaddress PyYAML
systemctl start docker
systemctl enable docker
for IMAGE in 'origin-node:v3.11' 'origin-pod:v3.11'; do
docker pull "quay.io/openshift/$IMAGE"
for IP in 20 30; do
docker save "quay.io/openshift/$IMAGE" | ssh -o stricthostkeychecking=no root@172.27.11.$IP docker load
done
done
yum install -y container-selinux libsemanage-python httpd-tools java python-passlib pyOpenSSL python-jinja2 python-paramiko python-setuptools python2-cryptography sshpass
rpm -i https://releases.ansible.com/ansible/rpm/release/epel-7-x86_64/ansible-2.6.2-1.el7.ans.noarch.rpm
cp /vagrant/files/hosts /etc/ansible/hosts
cp /vagrant/files/ansible.cfg /etc/ansible/ansible.cfg
cp /vagrant/files/key /root/.ssh/id_rsa; chmod 400 /root/.ssh/id_rsa
cp /vagrant/files/key.pub /root/.ssh/id_rsa.pub
sed -i -e "s/#host_key_checking/host_key_checking/" /etc/ansible/ansible.cfg
sed -i -e "s@#private_key_file = /path/to/file@private_key_file = /root/.ssh/id_rsa@" /etc/ansible/ansible.cfg
git clone -b release-3.11 --single-branch https://github.com/openshift/openshift-ansible /root/openshift-ansible
cd /root/openshift-ansible
sed -i 's/openshift.common.ip/openshift.common.public_ip/' roles/openshift_control_plane/templates/master.yaml.v1.j2
ansible-playbook /root/openshift-ansible/playbooks/prerequisites.yml
/vagrant/provision/fix-repos-persistent.sh
ansible-playbook /root/openshift-ansible/playbooks/deploy_cluster.yml
mkdir -p /etc/origin/master && htpasswd -Bbc /etc/origin/master/htpasswd developer 4linux
+34
View File
@@ -0,0 +1,34 @@
#!/bin/bash
/vagrant/provision/fix-centos-repos.sh
# Dependências
yum install -y curl vim device-mapper-persistent-data lvm2 epel-release wget git net-tools bind-utils yum-utils iptables-services bridge-utils bash-completion kexec-tools sos psacct docker python-ipaddress PyYAML
systemctl start docker
systemctl enable docker
for IMAGE in 'origin-node:v3.11' 'origin-pod:v3.11'; do
docker pull "quay.io/openshift/$IMAGE"
for IP in 20 30; do
docker save "quay.io/openshift/$IMAGE" | ssh -o stricthostkeychecking=no root@172.27.11.$IP docker load
done
done
yum install -y java python-passlib pyOpenSSL python-jinja2 python-paramiko python-setuptools python2-cryptography sshpass
rpm -i https://releases.ansible.com/ansible/rpm/release/epel-7-x86_64/ansible-2.6.2-1.el7.ans.noarch.rpm
cp /vagrant/files/hosts /etc/ansible/hosts
cp /vagrant/files/ansible.cfg /etc/ansible/ansible.cfg
cp /vagrant/files/key /root/.ssh/id_rsa; chmod 400 /root/.ssh/id_rsa
cp /vagrant/files/key.pub /root/.ssh/id_rsa.pub
sed -i -e "s/#host_key_checking/host_key_checking/" /etc/ansible/ansible.cfg
sed -i -e "s@#private_key_file = /path/to/file@private_key_file = /root/.ssh/id_rsa@" /etc/ansible/ansible.cfg
git clone -b release-3.11 --single-branch https://github.com/openshift/openshift-ansible /root/openshift-ansible
cd /root/openshift-ansible
sed -i 's/openshift.common.ip/openshift.common.public_ip/' roles/openshift_control_plane/templates/master.yaml.v1.j2
ansible-playbook /root/openshift-ansible/playbooks/prerequisites.yml
ansible-playbook /root/openshift-ansible/playbooks/deploy_cluster.yml
htpasswd -Bbc /etc/origin/master/htpasswd developer 4linux
+11
View File
@@ -0,0 +1,11 @@
#!/bin/bash
# Fix CentOS repositories first
/vagrant/provision/fix-centos-repos.sh
/vagrant/provision/fix-repos-persistent.sh
# Dependências
yum install -y container-selinux libsemanage-python curl vim device-mapper-persistent-data lvm2 epel-release wget git net-tools bind-utils yum-utils iptables-services bridge-utils bash-completion kexec-tools sos psacct docker python-ipaddress PyYAML
systemctl start docker
systemctl enable docker
+7
View File
@@ -0,0 +1,7 @@
#!/bin/bash
# Dependências
yum install -y curl vim device-mapper-persistent-data lvm2 epel-release wget git net-tools bind-utils yum-utils iptables-services bridge-utils bash-completion kexec-tools sos psacct docker python-ipaddress PyYAML
systemctl start docker
systemctl enable docker
+10
View File
@@ -0,0 +1,10 @@
#!/bin/bash
# Fix CentOS repositories first
/vagrant/provision/fix-centos-repos.sh
# Dependências
yum install -y curl vim device-mapper-persistent-data lvm2 epel-release wget git net-tools bind-utils yum-utils iptables-services bridge-utils bash-completion kexec-tools sos psacct docker python-ipaddress PyYAML
systemctl start docker
systemctl enable docker
+14
View File
@@ -0,0 +1,14 @@
#!/bin/bash
mkdir -p /root/.ssh
cp /vagrant/files/key.pub /root/.ssh/authorized_keys
HOSTS="$(head -n2 /etc/hosts)"
echo -e "$HOSTS" > /etc/hosts
cat >> /etc/hosts <<EOF
172.27.11.10 okd.example.com
172.27.11.20 node1.example.com
172.27.11.30 node2.example.com
172.27.11.40 extras.example.com
EOF