部署B(yǎng)BS, ansible安裝使用, Docker的安裝與pull

一. 部署B(yǎng)BS

  1. 項目文件導(dǎo)入:

    項目放到opt下, 下面的day1130為項目名
    將數(shù)據(jù)轉(zhuǎn)為sql文件放到opt下

  2. 創(chuàng)建bbs數(shù)據(jù)庫, 并運行sql文件寫入數(shù)據(jù)

    mysql> create database bbs charset utf8mb4;
    mysql> use bbs
    mysql> ource /opt/bbs.sql
    
  3. 修改settings.py的數(shù)據(jù)庫配置

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'bbs',
            'HOST': "10.0.0.100",
            'USER': 'bbs',
            'PASSWORD': '123',
            'PORT': 3306,
        }
    }
    
  4. 創(chuàng)建mysql的bbs用戶

    mysql> grant select,update,delete ,insert on bbs.* to bbs@'10.0.0.%' identified by '123';
    
    測試: 
    mysql -ubbs -p123 -h10.0.0.100
    
  5. 配置nginx

    vim /etc/nginx/conf.d/py.conf
    
    
    
    server {
    listen 80;
    server_name 10.0.0.100;
    client_max_body_size 100M;
    
    location  /static {
    alias /opt/day1130/static/;
    }
    
    location /media {
    alias /opt/day1130/media;
    }
    
    location / {
    index index.html;
    include uwsgi_params;
    uwsgi_pass 127.0.0.1:9091;
    
    # 這里配置的day1130是settings.py所在的文件夾.wsgi
    uwsgi_param UWSGI_SCRIPT day1130.wsgi;
    
    # 這里配置的項目根目錄的路徑
    uwsgi_param UWSGI_CHDIR /opt/day1130;
    }
    }
    
  6. 配置uwsgi

    關(guān)閉所有已有的uwsgi進程:
    kill -9 `ps -ef |grep uwsgi|awk {'print $2'}`
    
    寫配置文件:
    vim  /opt/day1130/uwsgi.ini
    
    [uwsgi]
    socket = 127.0.0.1:9091
    master = true
    workers = 2
    reload-mercy = 10
    vacuum = true
    max-requests = 1000
    limit-as = 512
    buffer-size = 30000
    
  7. 啟動uwsgi

    uwsgi --ini /opt/day1130/uwsgi.ini
    

二. ansible的安裝與使用

  1. 安裝ansible

    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    yum install ansible -y
    
    curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    
  2. 創(chuàng)建多臺服務(wù)器的環(huán)境(克隆一臺虛擬機代替)

    主機關(guān)機,克隆機開機,進入克隆機
    
    修改克隆機名為 standby
    hostnamectl set-hostname standby
    
    修改IP地址
    vim /etc/sysconfig/network-scripts/ifcfg-eth0
    刪除UUID, 改下ip地址 : IPADDR=10.0.0.200
    
    修改host文件
    echo "改后的ip 改后的主機名">>/etc/hosts
    
    重啟網(wǎng)卡
    systemctl restart network
    
  3. 秘鑰鏈接的使用

    生成秘鑰
    ssh-keygen
    公鑰推給另一臺機器
    ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.0.0.200
    給自己一個秘鑰
    ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.0.0.200
    測試
    ssh 10.0.0.200 date
    
  4. 將這幾個ip放到一個組,方便以后批量調(diào)用

    vim /etc/ansible/hosts
    [web]
    10.0.0.100
    10.0.0.200
    
  5. 測試

    [root@wzj ~]# ansible web -m ping
    顯示如下則成功
    10.0.0.200 | SUCCESS => {
        "changed": false, 
        "ping": "pong"
    }
    10.0.0.100 | SUCCESS => {
        "changed": false, 
        "ping": "pong"
    }
    
    [root@wzj ~]# ansible all -m shell -a "df -h"
    顯示如下則成功
    10.0.0.200 | CHANGED | rc=0 >>
    文件系統(tǒng)                 容量  已用  可用 已用% 掛載點
    /dev/mapper/centos-root   47G  9.3G   38G   20% /
    devtmpfs                 478M     0  478M    0% /dev
    tmpfs                    489M     0  489M    0% /dev/shm
    tmpfs                    489M  6.7M  482M    2% /run
    tmpfs                    489M     0  489M    0% /sys/fs/cgroup
    /dev/sda1               1014M  125M  890M   13% /boot
    tmpfs                     98M     0   98M    0% /run/user/0
    
    10.0.0.100 | CHANGED | rc=0 >>
    文件系統(tǒng)                 容量  已用  可用 已用% 掛載點
    /dev/mapper/centos-root   47G  9.3G   38G   20% /
    devtmpfs                 478M     0  478M    0% /dev
    tmpfs                    489M  124K  489M    1% /dev/shm
    tmpfs                    489M  6.7M  482M    2% /run
    tmpfs                    489M     0  489M    0% /sys/fs/cgroup
    /dev/sda1               1014M  125M  890M   13% /boot
    tmpfs                     98M     0   98M    0% /run/user/0
    
  6. ansible playbook自動化批量安裝nginx

1. 寫劇本
vim playbook_nginx.yml

- hosts: web
remote_user: root
vars:
  http_port: 80
tasks:
  - name: Add Nginx Yum Repository
    yum_repository:
      name: nginx
      description: Nginx Repository
      baseurl: http://nginx.org/packages/centos/7/$basearch/
      gpgcheck: no

  - name: Install Nginx Server
    yum: name=nginx state=present

  - name: Configure Nginx Server
    template: src=./default.conf.template dest=/etc/nginx/conf.d/default.conf
    notify: Restart Nginx Server

  - name: Start Nginx Server
    service: name=nginx state=started enabled=yes


handlers:
  - name: Restart Nginx Server
    service: name=nginx state=restarted
   
2.default.conf.template文件如下
cat default.conf.template 
server {
  listen       {{ http_port }};
  server_name  localhost;

  location / {
      root   /usr/share/nginx/html;
      index  index.html index.htm;
  }
}

3. 執(zhí)行ansible-playbook
  檢查語法
  ansible-playbook --syntax playbook_nginx.yml     
  模擬執(zhí)行
  ansible-playbook -C playbook_nginx.yml 
  執(zhí)行
  ansible-playbook playbook_nginx.yml   

三. Docker的安裝使用

  1. 安裝docker:

    curl  http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
    安裝依賴
    yum install -y yum-utils device-mapper-persistent-data lvm2
    顯示Docker的所有版本:
     yum list docker-ce.x86_64 --showduplicates | sort -r
     選擇一個版本安裝
     yum install -y --setopt=obsoletes=0 \
     docker-ce-17.03.2.ce-1.el7.centos.x86_64 \
     docker-ce-selinux-17.03.2.ce-    1.el7.centos.noarch
    
  2. 啟動Docker

    systemctl daemon-reload
    systemctl restart docker
    
  3. 鏡像加速

    mkdir -p /etc/docker
    vim   /etc/docker/daemon.json
    
    {
     "registry-mirrors": ["https://68rmyzg7.mirror.aliyuncs.com"]
    }
    
  4. 使用docker裝一些其他的環(huán)境,用于項目在其他系統(tǒng)上測試

    docker pull centos:6.9
    docker pull centos:7.5.1804
    docker pull nginx
    
  5. 查看下了哪些鏡像

    docker images
    
  6. 啟用centos6.9鏡像

    docker run -it  centos:6.9
    
  7. 查看當前所在鏡像

    [root@wzj ~]# cat /etc/redhat-release
    CentOS Linux release 7.4.1708 (Core) 
    
  8. 查詢鏡像

    docker images  所有的鏡像
    docker images -q 只看鏡像ID
    docker inspect ID/name:tag  鏡像的詳細信息
    docker images --no-trunc 所有的鏡像的詳細信息刪除鏡像
    docker rmi -f ID/name:tag
    docker rmi -f `docker images -q`  批量刪除所有鏡像
    
  9. 導(dǎo)入導(dǎo)出鏡像

    導(dǎo)出: docker save ID/name:tag >/tmp/xxx.tar
    導(dǎo)入: docker load -i /tmp/xxx.tar
    
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容