雲計算 | 私有雲運維開發

雲計算基本實驗環境預備.

!!📢說明!!

  • 🚫 1,請勿轉載本文相關內容到中國大陸任何媒體社交平臺. .
  • 📢 2,所有實驗均運行與Arch Linux系統之上,並非Windows,但和Windows步驟是一樣的. .
  • 📢 3,實驗中使用Vmware-Workstation虛擬化軟體,軟件來源自互聯網. .
  • 📢 3,實驗中用到的所有軟體,均會採用最新版本,遵循Arch理念. .

🔧實驗準備.

  • 🔧 準備好 基本實驗環境搭建..

實驗環境

👀 實驗環境.

設備名稱主機名稱接口對應關係IPV4地址虛擬網卡網段
虛擬機1controllereth0->vmnet21
eth1->vmnet25
192.168.21.21
10.10.21.21
vmnet21:
192.168.21.0/24
虛擬機2computeeth0->vmnet21
eth1->vmnet25
192.168.21.25
10.10.21.25
vmnet25:
10.10.21.25.0/24

之後所有都有這張表格,所以請記住,你在哪,你是誰,你在幹什麼.

RUN

嚯,終於來到了我們最喜歡的開發部分了.

题目1: 编写 Shell 一键部署脚本[1.0 分]

编写一键部署 nfs 云网盘应用系统,在 OpenStack 私有云平台,创建一台云主机,
使用提供的软件包,在 root 目录下编写一键部署脚本install_owncloud.sh,要求可以一键部署
owncloud 云网盘应用系统。完成后提交节点的IP地址,用户名和密码到答题框。
老規矩先上一波圖.
owncloud源碼路徑: http://10.43.3.222:523
瀏覽器查看owncloud配置界面
配置owncloud
安裝成功owncloud
owncloud界面預覽
controller主機執行.

#!/usr/bin/env bash

# root权限检测.
if (( `id -u` != 0 )); then
   printf '请使用root权限执行脚本.\n'
   exit 0
fi

# URL 定义,参数1 指定URL.
if ! [ $1 ]; then
   _Download_URL='http://10.43.3.222:523/owncloud-8.2.11.zip'
else
   _Download_URL=$1
fi

# 數據庫用户,密碼密码,數據庫名稱定義.
DB_USER='owncloud'
DB_PASSWORD='000000'
DB_NAME='owncloud'

printf '安裝運行環境.\n'
yum -y update >/dev/null 2>&1
yum -y install wget curl unzip httpd php php-mysql php-pecl-zip php-intl php-mbstring php-gd php-dom php-xml php-mcrypt mariadb-server >/dev/null 2>&1

printf '啓動服務.\n'
systemctl daemon-reload
systemctl enable --now httpd &&systemctl enable --now mariadb >/dev/null 2>&1

printf '安全的 MariaDB 安裝.\n'
mysql_secure_installation <<EOF

y
$DB_PASSWORD
$DB_PASSWORD
y
y
y
y
EOF

printf '下載OwnCloud源碼.\n'
wget ${_Download_URL} >/dev/null 2>&1

printf '解壓源碼.\n'
unzip owncloud*.zip >/dev/null 2>&1

printf '配置源碼.\n'
mv  owncloud /var/www/html/
chown -R apache:apache /var/www/html/owncloud

printf '建立數據庫用戶,和數據庫.\n'
mysql -u root -p$DB_PASSWORD <<EOF
CREATE DATABASE $DB_NAME;
CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASSWORD';
GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'localhost';
FLUSH PRIVILEGES;
EOF

systemctl restart  mariadb

printf '配置 Apache.\n'
cat << EOF >/etc/httpd/conf.d/owncloud.conf
Alias /owncloud "/var/www/html/owncloud/"

<Directory /var/www/html/owncloud/>
  Options +FollowSymlinks
  AllowOverride All
  <IfModule mod_dav.c>
    Dav off
  </IfModule>
  SetEnv HOME /var/www/html/owncloud
  SetEnv HTTP_HOME /var/www/html/owncloud
</Directory>
EOF

printf '重启Apache.\n'
systemctl restart httpd

printf 'OwnCloud has been successfully installed!\n'
printf 'Open the: http://your-server-ip/owncloud\n'

题目2,Ansible 服务部署:部署 ELK 集群服务[2 分]

编写 Playbook,部署的 ELK。
使用赛项提供的 OpenStack 私有云平台,创建三台 CentOS7.9 系统的云主机分别命名
为 elk-1、 elk-2 和 elk-3, Ansible 主机可以使用上一题的环境。要求 Ansible 节点编写
剧本,执行 Ansible 剧本可以在这三个节点部署 ELK 集群服务(在/root 目录下创建
install_elk 目录作为 ansible 工作目录,部署的入口文件命名为 install_elk.yaml)。
具体要求为三个节点均安装 Elasticserach 服务并配置为 Elasticserach 集群; kibana 安
装在第一个节点; Logstash 安装在第二个节点。(需要用到的软件包在 HTTP 服务下)完成
后提交 ansible 节点的用户名、密码和 IP 地址到答题框。(考试系统会连接到 ansible 节
点,执行 ansible 脚本,准备好环境,以便考试系统访问)

#ansible playbook Cento7 ELK集群
- hosts: elk-1
  remote_user: root
  tasks:
    - name: Config elk-1 hostname
      shell: hostnamectl set-hostname elk-1

- hosts: elk-2
  remote_user: root
  tasks:
    - name: Config elk-2 hostname
      shell: hostnamectl set-hostname elk-2

- hosts: elk-3
  remote_user: root
  tasks:
    - name: Config elk-3 hostname
      shell: hostnamectl set-hostname elk-3

- hosts: all
  remote_user: root
  tasks:
  - name: disable selinux
    shell: sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config

  - name: Copy package and file
    copy:
      src: "{{item.src}}"
      dest: "{{item.dest}}"
    with_items:
      - {src: 'config_server.sh', dest: '/tmp'}
      - {src: "elasticsearch-6.0.0.rpm", dest: '/root'}
      - {src: "kibana-6.0.0-x86_64.rpm", dest: '/root'}
      - {src: "logstash-6.0.0.rpm", dest: '/root'}

  - name: run script
    shell: bash /tmp/config_server.sh

  - name: delete script
    shell: rm /tmp/*sh

  #--配置yum源..<可省略>
  - name: Config system
    shell: |
      mkdir /root/backup
      cp -avr /etc/yum.repos.d /root/backup
      rm -f /etc/yum.repos.d/*
      mkdir /mnt/{0,1,2,3,4,5,6,7,8,9}
      mount -t cifs -o username=whoami,password=whoami //172.129.22.1/lmd /media
      cp -v /media/mount.sh /root
      umount -l /media
      /root/mount.sh mount
      yum makecache
      cp -v /media/allrepo.repo /etc/yum.repos.d/
      yum -y install bash-com* vim
  - name: Install JAVA
    shell: yum -y install java-1.8.0-*
  - name: Install elk
    shell: rpm -ivh /root/elasticsearch-6.0.0.rpm

- hosts: elk-1
  remote_user: root
  tasks:
    - name: copy config
      copy: src=elk1.yml dest=/etc/elasticsearch/elasticsearch.yml
    - name: daemon-reload
      shell: systemctl daemon-reload
    - name: start elk
      shell: systemctl enable --now elasticsearch
    - name: install kibana
      shell: rpm -ivh /root/kibana-6.0.0-x86_64.rpm
    - name: copy config
      template: src=kibana.yml dest=/etc/kibana/kibana.yml
    - name: start kibana
      shell: systemctl enable --now kibana

- hosts: elk-2
  remote_user: root
  tasks:
    - name: copy config
      copy: src=elk2.yml dest=/etc/elasticsearch/elasticsearch.yml
    - name: daemon-reload
      shell: systemctl daemon-reload
    - name: start elk
      shell: systemctl enable --now elasticsearch
    - name: install logstash
      shell: rpm -ivh /root/logstash-6.0.0.rpm
    - name: copy config
      copy: src=logstash.yml dest=/etc/logstash/logstash.yml
    - name: copy config
      copy: src=syslog.conf dest=/etc/logstash/conf.d/syslog.conf
    - name: set message
      shell: chmod 644 /var/log/messages
    - name: start logstash
      shell: systemctl daemon-reload &&systemctl enable --now logstash.service

- hosts: elk-3
  remote_user: root
  tasks:
    - name: copy config
      copy: src=elk3.yml dest=/etc/elasticsearch/elasticsearch.yml
    - name: daemon-reload
      shell: systemctl daemon-reload
    - name: start elk
      shell: systemctl enable --now elasticsearch

   转载规则


《雲計算 | 私有雲運維開發》Bad-BoY 采用 知识共享署名 4.0 国际许可协议 进行许可。
 本篇
雲計算 | 私有雲運維開發 雲計算 | 私有雲運維開發
雲計算基本實驗環境預備.!!📢說明!!🚫 1,請勿轉載本文相關內容到中國大陸任何媒體社交平臺. .📢 2,所有實驗均運行與Arch Linux系統之上,並非Windows,但和Windows步驟是一樣的. .📢 3,實驗中使用Vmw
2023-11-15
下一篇 
雲計算 | 私有云服务运维 雲計算 | 私有云服务运维
雲計算基本實驗環境預備.!!📢說明!!🚫 1,請勿轉載本文相關內容到中國大陸任何媒體社交平臺. .📢 2,所有實驗均運行與Arch Linux系統之上,並非Windows,但和Windows步驟是一樣的. .📢 3,實驗中使用Vmw
2023-11-11
  目录