codo

一、環(huán)境準(zhǔn)備:

(在此說(shuō)明本次測(cè)試環(huán)境為阿里云centos7.6,4c8g機(jī)器,1c1g機(jī)器性能不足)
1、創(chuàng)建項(xiàng)目目錄:mkdir -p /opt/codo/ && cd /opt/codo/
2、編輯環(huán)境變量文件,方便后續(xù)操作(注意修改密碼和secret)
vim /opt/codo/env.sh

echo -e "\033[31m 注意:token_secret一定要做修改,防止網(wǎng)站被攻擊!!!!!!! \033[0m"
echo -e "\033[32m 注意:token_secret一定要做修改,防止網(wǎng)站被攻擊!!!!!!! \033[0m"
echo -e "\033[33m 注意:token_secret一定要做修改,防止網(wǎng)站被攻擊!!!!!!! \033[0m"

#部署的IP地址
export LOCALHOST_IP="127.0.0.1"

#設(shè)置你的MYSQL密碼
export MYSQL_PASSWORD="m9uSFL7duAVXfeAwGUSG"

### 設(shè)置你的redis密碼
export REDIS_PASSWORD="cWCVKJ7ZHUK12mVbivUf"

### RabbitMQ用戶(hù)密碼信息
export MQ_USER="guest"
export MQ_PASSWORD="5Q2ajBHRT2lFJjnvaU0g"


#codo-admin用到的cookie和token
export cookie_secret="nJ2oZis0V/xlArY2rzpIE6ioC9/KlqR2fd59sD=UXZJ=3OeROB"
# 這里codo-admin和gw網(wǎng)關(guān)都會(huì)用到,一定要修改??缮呻S意字符
export token_secret="pXFb4i%*834gfdh963df718iodGq4dsafsdadg7yI6ImF1999aaG7"


##如果要進(jìn)行讀寫(xiě)分離,Master-slave主從請(qǐng)自行建立,一般情況下都是只用一個(gè)數(shù)據(jù)庫(kù)就可以了
# 寫(xiě)數(shù)據(jù)庫(kù)
export DEFAULT_DB_DBHOST="127.0.0.1"
export DEFAULT_DB_DBPORT='3306'
export DEFAULT_DB_DBUSER='root'
export DEFAULT_DB_DBPWD=${MYSQL_PASSWORD}
#export DEFAULT_DB_DBNAME=${mysql_database}

# 讀數(shù)據(jù)庫(kù)
export READONLY_DB_DBHOST='127.0.0.1'
export READONLY_DB_DBPORT='3306'
export READONLY_DB_DBUSER='root'
export READONLY_DB_DBPWD=${MYSQL_PASSWORD}
#export READONLY_DB_DBNAME=${mysql_database}

# 消息隊(duì)列
export DEFAULT_MQ_ADDR='127.0.0.1'
export DEFAULT_MQ_USER=${MQ_USER}
export DEFAULT_MQ_PWD=${MQ_PASSWORD}

# 緩存
export DEFAULT_REDIS_HOST='127.0.0.1'
export DEFAULT_REDIS_PORT=6379
export DEFAULT_REDIS_PASSWORD=${REDIS_PASSWORD}

==最后一定不要忘記source:== source /opt/codo/env.sh
3、安裝python3,docker和

#安裝python3
yum install python3 -y 
#安裝docker
yum install docker -y
systemctl start docker.service
systemctl enable docker.service
安裝docker-compose
yum install docker-compose -y

4、安裝MySQL
一般來(lái)說(shuō)一個(gè)MySQL實(shí)例即可,如果有需求可以自行搭建主從,微服務(wù)每個(gè)服務(wù)都可以有自己的數(shù)據(jù)庫(kù)。
我們這里示例是用Docker部署的MySQL,如果你要用已有的數(shù)據(jù)庫(kù)請(qǐng)修改/opt/codo/env.sh

source /opt/codo/env.sh
mkdir -p /opt/codo/codo-mysql&& cd /opt/codo/codo-mysql
#編輯docker-compose.yml
cat >docker-compose.yml <<EOF
version: '2'
services:
  mysql:
    image: mysql:5.7
    container_name: mysql
    restart: always
    ports:
      - "3306:3306"
    volumes:
     - mysql_data:/var/lib/mysql
    environment:
     - MYSQL_ROOT_PASSWORD=${MYSQL_PASSWORD}

volumes:
  mysql_data:
    driver: local
EOF


#啟動(dòng) 
docker-compose up -d
# 安裝MySQL客戶(hù)端,測(cè)試
yum install mysql -y  

測(cè)試 mysql -h127.0.0.1 -uroot -p${MYSQL_PASSWORD}

5、安裝Redis
創(chuàng)建 docker-compose.yml

source /opt/codo/env.sh
mkdir -p /opt/codo/codo-redis && cd /opt/codo/codo-redis
#編輯docker-compose.yml
cat >docker-compose.yml <<EOF
version: '2'
services:
  redis:
    image: redis
    container_name: redis
    restart: always
    ports:
      - "6379:6379"
    volumes:
      - data:/data
    command: redis-server --requirepass 111111

volumes:
  data:
    driver: local
EOF

#啟動(dòng)
docker-compose up -d

#測(cè)試
沒(méi)有cli的同學(xué),請(qǐng)yum install redis -y
測(cè)試 redis-cli -h 127.0.0.1 -p 6379 -a ${REDIS_PASSWORD}

6、安裝RabbitMQ

創(chuàng)建 docker-compose.yml
source /opt/codo/env.sh
mkdir -p /opt/codo/codo-mq && cd /opt/codo/codo-mq 
#編輯docker-compose.yml
cat >docker-compose.yml <<EOF
rabbitmq:
    restart: unless-stopped
    image: registry.cn-shanghai.aliyuncs.com/ss1917/rabbitmq:3-management
    environment:
      - RABBITMQ_DEFAULT_USER=${MQ_USER}
      - RABBITMQ_DEFAULT_PASS=${MQ_PASSWORD}
    ports:
      - "15672:15672"
      - "5672:5672"
EOF

#啟動(dòng)
docker-compose up -d

7、安裝DNS
注意,這里如果你內(nèi)部有自己DNS,你也可以選擇使用你自己的
部署內(nèi)部DNS dnsmasq 用于服務(wù)間內(nèi)部通信,API網(wǎng)關(guān)需要配置,切記。

echo -e "\033[32m [INFO]: Start install dnsmasq \033[0m"
yum install dnsmasq -y

# 設(shè)置上游DNS,畢竟你的Dns只是個(gè)代理
cat >/etc/resolv.dnsmasq <<EOF
nameserver 114.114.114.114
nameserver 8.8.8.8
EOF

# 設(shè)置host解析
echo -e "\033[32m [INFO]: 如果你是單機(jī)部署,那么你就將你的本機(jī)IP+模塊域名解析即可,如果你是分布式部署的,那么每個(gè)模塊對(duì)應(yīng)的機(jī)器IP一定不要搞錯(cuò),這個(gè)很重要,后面網(wǎng)關(guān)也要依賴(lài)此DNS去解析你的域名,幫你做服務(wù)轉(zhuǎn)發(fā)的,切記?。。。? \033[0m"
cat >/etc/dnsmasqhosts <<EOF
$LOCALHOST_IP demo-init.opendevops.cn
$LOCALHOST_IP mg.opendevops.cn
$LOCALHOST_IP task.opendevops.cn
$LOCALHOST_IP gw.opendevops.cn
$LOCALHOST_IP cmdb2.opendevops.cn
$LOCALHOST_IP kerrigan.opendevops.cn
$LOCALHOST_IP tools.opendevops.cn
$LOCALHOST_IP cron.opendevops.cn
$LOCALHOST_IP dns.opendevops.cn
EOF

# 添加配置
echo -e "\033[32m [INFO]: 剛裝完DNS可以先不用改本機(jī)的DNS,有一部分人反應(yīng)Docker Build時(shí)候會(huì)報(bào)連不上mirrors,裝不了依賴(lài)。部署到API網(wǎng)關(guān)的時(shí)候,需要將本機(jī)DNS改成自己,不然沒(méi)辦法訪(fǎng)問(wèn)以上mg,cron,cmdb等內(nèi)網(wǎng)域名
\033[0m"

# 注意下一步是覆蓋你本機(jī)的DNS,建議把你的DNS地址加在/etc/resolv.dnsmasq 里面 
cp -rp /etc/resolv.conf /etc/resolv.conf-`date +%F`
# echo "nameserver $LOCALHOST_IP" > /etc/resolv.conf  
sed "1i\nameserver ${LOCALHOST_IP}" /etc/resolv.conf -i 
###注意注意, 這里修改完后,請(qǐng)你一定要確定你nameserver ${LOCALHOST_IP} 內(nèi)部DNS在第一條、第一條、第一條,放在下面是不能正常解析的.

echo "resolv-file=/etc/resolv.dnsmasq" >> /etc/dnsmasq.conf
echo "addn-hosts=/etc/dnsmasqhosts" >> /etc/dnsmasq.conf

## 啟動(dòng)
/bin/systemctl enable dnsmasq.service
/bin/systemctl start dnsmasq.service
systemctl status dnsmasq
if [ $? == 0 ];then
    echo -e "\033[32m [INFO]: dnsmasq install success. \033[0m"
else
    echo -e "\033[31m [ERROR]: dnsmasq install faild \033[0m"
    exit -6
fi
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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