首页 > 其他分享 >国产麒麟(Kylin-Server-10)系统无外网环境安装docker

国产麒麟(Kylin-Server-10)系统无外网环境安装docker

时间:2023-05-24 19:44:26浏览次数:36  
标签:opt 10 Kylin tar ce Server ansible portainer docker

由于某些原因服务器环境不给开放外网,只能提前在有外网环境准备好相关资源后再部署。
先在有外网环境制作yum安装包,再将压缩包拷贝到无外网环境通过ansible安装docker。

制作ansible、docker离线安装包

ansible离线安装包

#查看依赖包
yum deplist ansible

#拉取ansible所有关联包到/opt/ansible中
yumdownloader ansible  --resolve --destdir=/opt/ansible

#顺便把createrepo也一起,一会一起打包,kylin带桌面已有可跳过
yumdownloader createrepo --resolve --destdir=/opt/ansible

#执行成功后会在/opt/ansible生成一个repodata目录
createrepo /opt/ansible/

#创建离线安装压缩包
cd /opt/ansible
tar zcvf ansible.offline.tar.gz *

docker离线安装包

cd /etc/yum.repos.d
wget https://mirrors.aliyun.com/repo/Centos-7.repo
sed -i 's/$releasever/7/g' /etc/yum.repos.d/Centos-7.repo
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's/$releasever/7/g' /etc/yum.repos.d/docker-ce.repo

yum list docker-ce --showduplicates|sort -r
#查看依赖
yum deplist docker-ce

#下载docker-ce rpm依赖
yumdownloader docker-ce --resolve --destdir=/opt/docker-ce
yumdownloader docker-compose --resolve --destdir=/opt/docker-ce

#打包docker-ce rpm
cd /opt/docker-ce
tar zcvf docker-ce.offline.tar.gz *

无外网环境安装

设置免密

ssh-keygen -t rsa
cat /root/.ssh/id_rsa.pub  >> /root/.ssh/authorized_keys
chmod 0600 /root/.ssh/authorized_keys
#检查
ssh [email protected] date

安装ansible

创建 InstallAnsible.sh 脚本,将ip改为本机ip。

#!/bin/bash
mv /etc/yum.repos.d/kylin_x86_64.repo /etc/yum.repos.d/kylin_x86_64.repo.bak
mkdir -p /opt/ansible
tar -zxvf ansible.offline.tar.gz -C /opt/ansible/
createrepo -po /opt/ansible/ /opt/ansible

cat >/etc/yum.repos.d/ansible.repo<<eof
[ansible]
name=ansible
baseurl=file:///opt/ansible
gpgcheck=0
enabled=1
eof

yum clean all
yum repolist

yum install ansible -y

cat >>/etc/ansible/hosts<<eof
[kylin]
192.168.xx.xx ansible_ssh_user=root ansible_ssh_port=22
eof

拷贝打包的 ansible.offline.tar.gz 文件到要安装到系统后执行如下命令。

sudo chmod +x InstallAnsible.sh
./InstallAnsible.sh

#安装成功查看版本
ansible --version

安装ansible

创建 install-docker.yaml 安装脚本

- name: install docker
  gather_facts: false
  hosts: kylin
  remote_user: root
  vars:
    ansible_python_interpreter: /usr/bin/python3
    local_current_dir: "{{ lookup('env', 'PWD') }}"
  tasks:
   - name: test connection
     ping:
   - name: tar docker
     shell: 
       cmd: |
         mkdir -p /opt/docker-ce
         tar -zxvf {{ local_current_dir }}/docker-ce.offline.tar.gz -C /opt/docker-ce/
         createrepo -po /opt/docker-ce/ /opt/docker-ce
   - name: add docker repo
     shell: 
       cmd: |
         cat >/etc/yum.repos.d/docker-ce.repo<<eof
         [docker-ce]
         name=docker-ce
         baseurl=file:///opt/docker-ce
         gpgcheck=0
         enabled=1
         eof
   - name: yum clean
     shell: yum clean all && yum makecache && yum repolist
   - name: setup docker-ce
     yum: name=docker-ce state=present
   - name: setup docker-compose
     yum: name=docker-compose state=present
   - name: start docker
     service: name=docker.service enabled=yes state=started
#ansible-playbook执行安装docker
ansible-playbook install-docker.yaml

使用ansible与docker-compose安装基础服务

先在有外网环境将需要的docker镜像save后,拷贝到无外网环境。

docker save portainer/portainer:latest > /usr/local/src/portainer.tar
docker save redis:latest > /usr/local/src/redis.tar

创建 inf-compose.yaml 文件

version: '3'

services:

  redis:
    image: redis
    restart: always
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /usr/local/dockervol/redis/redis.conf:/etc/redis/redis.conf
      - /usr/local/dockervol/redis/data:/data
    ports:
      - "6379:6379"
    command: 
      redis-server /etc/redis/redis.conf --appendonly yes

创建 run-inf.yaml 文件

- name: run inf
  gather_facts: false
  hosts: kylin
  remote_user: root
  vars:
    ansible_python_interpreter: /usr/bin/python3
    local_current_dir: "{{ lookup('env', 'PWD') }}"
  tasks:
   - name: test connection
     ping:
   - name: check docker image
     shell: docker images | grep portainer
     ignore_errors: True
     register: img_result  #存在 succeeded,不存在 failed
   - name: docker load
     shell: 
       cmd: |
         docker load -i {{ local_current_dir }}/portainer.tar
         docker load -i {{ local_current_dir }}/redis.tar
     when: img_result | failed
   - name: check portainer
     shell: docker ps | grep portainer
     ignore_errors: True
     register: portainer_result
   - name: portainer
     shell: docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /usr/local/dockervol/portainer/data:/data --name portainer docker.io/portainer/portainer
     when: portainer_result | failed
   - name: inf compose
     shell: 
       docker-compose -f {{ local_current_dir }}/inf-compose.yaml up -d
#安装基础服务
ansible-playbook run-inf.yaml

标签:opt,10,Kylin,tar,ce,Server,ansible,portainer,docker
From: https://www.cnblogs.com/ddrsql/p/17429318.html

相关文章

  • [Error 10048] error while attempting to bind on address (‘127.0.0.1‘, 8000):
    今天运行程序的时候碰到了这么个问题,因为之前也遇到过这种情况,那时找不到原因重启电脑这方法偶尔能解决,今天就不行了,电脑又没有看到明显的占用这个端口的程序。所以查找资料从根源出发解决。解决方法是:1.进入命令行(以管理员身份)2.输入netstat-aon|findstr"8000"查找8000端......
  • python基础10
    文件基本操作三步骤1.打开文件2.操作文件3.关闭文件关键字:open1f=open(r'a.txt','r',encoding='utf8')2print(f)#操作系统打开文件34#操作文件:读、写5res=f.read()67#关闭文件:释放资源8f.close91011#方式二:12#with上下管理......
  • macbook苹果m1芯片训练机器学习、深度学习模型,resnet101在mnist手写数字识别上做加速
    apple的m1芯片比以往cpu芯片在机器学习加速上听说有15倍的提升,也就是可以使用applemac训练深度学习pytorch模型!!!惊呆了 安装applem1芯片版本的pytorch 然后使用chatGPT生成一个resnet101的训练代码,这里注意,如果网络特别轻的话是没有加速效果的,还没有cpu的计算来的快这里......
  • SQL_lab总结1-10关
    第三关字符型注入测试判断字段数?id=1')and1=1orderby1--+?id=1')and1=1orderby4--+回显库名?id=-1')unionselect1,version(),database()--+or爆破数据库?id=-1%27)%20union%20select%201,version(),group_concat(schema_name)frominformation_schema......
  • ASEMI代理长电可控硅MCR100-8特征,MCR100-8应用
    编辑-Z长电可控硅MCR100-8参数:型号:MCR100-8VDRM/VRRM:600VIT(RMS):0.8A结点温度Tj:-40~125℃储存温度Tstg:-55~150℃通态电压VTM:1.7V栅极触发电压VGT:0.8V正向或反向阻断电流峰值:10µA保持电流IH:5mA栅极触发电流IGT:15µA  MCR100-8封装规格:封装:TO-92总长度:19.2mm......
  • SQL Server 版本推荐
    数据库尽量与windowsserver版本匹配,例如:windowsserver2016就装sqlserver2016;windowsserver2019就装sqlserver2019;----------------------------------------------------------------------------------------------------补丁包请更新到最新SQL2016最新补丁包为S......
  • sshpass报错 Permission denied, please try again.和 connect to host localhost po
    最近在做自动化时,自动化脚本用sshpass给远程机器发送命令(sshpass-p"123456"ssh-p10022root@localhost-oStrictHostKeyChecking=no"poweroff")报错:Permissiondenied,pleasetryagain.和 ssh:connecttohostlocalhostport10022:Connectionrefused   1.......
  • Windows10 无法更新密码。为新密码提供的值不符合字符域的长度、复杂性或历史要求
    域账号死活无法修改密码,说要求不足,可是AD域几乎不限制密码条件。Ctrl+Alt+Del改自己管理员密码唯一找到的解决方法:只有在勾选"下次变更密码"时使用者换密码系统才会认定符合複杂度要求,这样操作可以正常修改密码    ......
  • 每日打卡1057
    给定一串长度不超过 105 的字符串,本题要求你将其中所有英文字母的序号(字母a-z对应序号1-26,不分大小写)相加,得到整数N,然后再分析一下N的二进制表示中有多少0、多少1。例如给定字符串 PAT(Basic),其字母序号之和为:16+1+20+2+1+19+9+3=71,而71的二进制是1000111,即有3个......
  • git指令连接库失败:OpenSSL SSL_read: Connection was reset, errno 10054
    一、问题描述无论是gitclone还是gitpush之类的需要连接库的指令都会出现`fatal:unabletoaccess'http://github.com/我的库/':OpenSSLSSL_read:Connectionwasreset,errno10054`报错原因:字面意思:服务器的SSL证书灭有经过第三方机构的签署。网上信息也有的说可能......