页面“Zabbix 调用API 批量添加主机”与“K8s镜像”之间的差异

来自linux中国网wiki
(页面间的差异)
跳到导航 跳到搜索
 
→‎evan
 
第1行: 第1行:
[[category:ops]]  [[category:zabbix]]
+
=evan2010=
=pre=
 
  
已有 salt
 
  
可以见 批量添加 salt  Salt-ssh批量自动安装被控端minion
+
[https://www.jianshu.com/p/d6848c711436 k8s.gcr.io 国内镜像拉不下来的办法 ]
  
=批量添加zabbix agent=
 
==直接用cmd.run==
 
  salt 'prod-mq03' cmd.run 'yum install  -y zabbix-agent' #systemctl  restart zabbix-agent  systemctl  enable zabbix-agent
 
 
==zabbix state.sls ==
 
有空要试一下
 
 
 
 
 
 
[https://www.cnblogs.com/LYCong/p/7879805.html salt 使用state文件来配置zabbix客户端文件]
 
 
[https://blog.csdn.net/u011075143/article/details/78615691 salt 使用state文件来配置zabbix客户端文件]
 
 
[https://www.cnblogs.com/Jackie-Chen/articles/10795003.html SaltStack批量安装zabbix-agent(yum安装)]
 
 
[https://www.cnblogs.com/xiewenming/p/7713660.html SaltStack安装zabbix-agent-第九篇]
 
 
[https://www.cnblogs.com/python-study/p/5504501.html SaltStack 使用pillar安装配置管理zabbix]
 
 
[https://blog.csdn.net/reblue520/article/details/76286843 saltstack自动化运维系列⑦SaltStack实践配置管理安装zabbix]
 
 
[https://www.cnblogs.com/LYCong/p/7879805.html salt 使用state文件来源码安装和配置zabbix客户端文件]
 
 
=批量修改zabbix agent配置=
 
 
<pre>
 
<pre>
Server=148.66.11.55
+
[root@master tomcat]# docker images
ServerActive=148.66.11.55
+
REPOSITORY                          TAG                IMAGE ID            CREATED            SIZE
Hostname=prod-sns-mq01
 
 
 
 
 
  
sed -i '/^Hostname/ s/.*/Hostname=zabbix_hk/' /etc/zabbix/zabbix_agentd.conf
+
calico/kube-controllers              v3.7.4              e67ede28cc7e        2 weeks ago        46.8MB
 +
k8s.gcr.io/kube-proxy                v1.15.0            d235b23c3570        3 weeks ago        82.4MB
 +
k8s.gcr.io/kube-apiserver            v1.15.0            201c7a840312        3 weeks ago        207MB
 +
k8s.gcr.io/kube-controller-manager  v1.15.0            8328bb49b652        3 weeks ago        159MB
 +
k8s.gcr.io/kube-scheduler            v1.15.0            2d3813851e87        3 weeks ago        81.1MB
  
#zbx hostname
+
quay.io/coreos/flannel              v0.11.0-amd64      ff281650a721        5 months ago        52.6MB
salt 'prod-mq03' cmd.run 'hostname'
+
k8s.gcr.io/coredns                  1.3.1              eb516548c180        6 months ago        40.3MB
prod-mq03:
+
k8s.gcr.io/etcd                      3.3.10              2c4adeb21b4f        7 months ago        258MB
    prod-mq03
+
k8s.gcr.io/pause                    3.1                da86e6ba6ca1        19 months ago      742kB
  
 +
calico/node                          v3.7.4              84b65b552a8f        2 weeks ago        155MB
 +
calico/cni                          v3.7.4              203668d151b2        2 weeks ago        135MB
 +
gcr.io/kubernetes-helm/tiller        v2.14.1            ac22eb1f780e        5 weeks ago        94.2MB
  
#这里可以取出 hostname 作变量 和作循环
+
2. 从Registry中拉取镜像
Server=148.66.01.05
+
$ sudo docker pull registry.cn-shenzhen.aliyuncs.com/evan886/k8s:[镜像版本号]
ServerActive=148.66.01.05
+
3. 将镜像推送到Registry
 +
$ sudo docker login --username=linuxsa886 registry.cn-shenzhen.aliyuncs.com
 +
$ sudo docker tag [ImageId] registry.cn-shenzhen.aliyuncs.com/evan886/k8s:[镜像版本号]
 +
$ sudo docker push registry.cn-shenzhen.aliyuncs.com/evan886/k8s:[镜像版本号]
 +
sudo docker push registry.cn-shenzhen.aliyuncs.com/evan886/k8s:debian_tomcatv1
  
myhost=`salt 'prod-mq03' cmd.run 'hostname' |sed -n '2p' |awk '{print $1}'`
+
kubectl v1.15.0
salt 'prod-sns-mq02' cmd.run "sed -i '/^Hostname/ s/.*/Hostname=$myhost/'  /etc/zabbix/zabbix_agentd.conf"
 
  
#这个替换太多了 不太好写匹配  要如下添加 =  or  直接 inser 就是了
+
sudo docker tag e67ede28cc7e  registry.cn-shenzhen.aliyuncs.com/evan886/k8s:kube-controllers
salt 'prod-mq03' cmd.run "sed -i '/^Server=/ s/.*/Server=$Server/' /etc/zabbix/zabbix_agentd.conf"
+
sudo docker tag d235b23c3570 registry.cn-shenzhen.aliyuncs.com/evan886/k8s:kube-proxy
salt 'prod-mq03' cmd.run "sed -i '/^ServerActive=/ s/.*/ServerActive=$ServerActive/' /etc/zabbix/zabbix_agentd.conf"
+
sudo docker tag 201c7a840312  registry.cn-shenzhen.aliyuncs.com/evan886/k8s:kube-apiserver
 +
sudo docker tag 8328bb49b652 registry.cn-shenzhen.aliyuncs.com/evan886/k8s:kube-controller-manager  
 +
sudo docker tag 2d3813851e87 registry.cn-shenzhen.aliyuncs.com/evan886/k8s:kube-scheduler
 +
sudo docker tag ff281650a721 registry.cn-shenzhen.aliyuncs.com/evan886/k8s:flannel 
 +
sudo docker tag eb516548c180 registry.cn-shenzhen.aliyuncs.com/evan886/k8s:coredns
 +
sudo docker tag 2c4adeb21b4f registry.cn-shenzhen.aliyuncs.com/evan886/k8s:etcd
 +
sudo docker tag da86e6ba6ca1 registry.cn-shenzhen.aliyuncs.com/evan886/k8s:pause
 +
sudo docker tag  registry.cn-shenzhen.aliyuncs.com/evan886/k8s:
 +
sudo docker tag registry.cn-shenzhen.aliyuncs.com/evan886/k8s:
  
  
注意 "" 结果不太对的
+
#push
  salt 'prod-sns-mq02' cmd.run "hostname |sed -n '2p' |awk '{print $1}'"
+
sudo docker push registry.cn-shenzhen.aliyuncs.com/evan886/k8s:kube-controllers
prod-sns-mq02:
+
sudo docker push registry.cn-shenzhen.aliyuncs.com/evan886/k8s:kube-proxy
 +
sudo docker push registry.cn-shenzhen.aliyuncs.com/evan886/k8s:kube-apiserver
 +
sudo docker push registry.cn-shenzhen.aliyuncs.com/evan886/k8s:kube-controller-manager  
 +
sudo docker push registry.cn-shenzhen.aliyuncs.com/evan886/k8s:kube-scheduler
 +
sudo docker push registry.cn-shenzhen.aliyuncs.com/evan886/k8s:flannel 
 +
sudo docker push registry.cn-shenzhen.aliyuncs.com/evan886/k8s:coredns
 +
sudo docker push 2c4adeb21b4f registry.cn-shenzhen.aliyuncs.com/evan886/k8s:etcd
 +
sudo docker push da86e6ba6ca1 registry.cn-shenzhen.aliyuncs.com/evan886/k8s:pause
  
</pre>
 
=利用api批量添加主机 =
 
zbx_server version 4.0
 
  
== get token ==
 
<pre>
 
cat aip.sh
 
# -*- coding:utf-8 -*-
 
import urllib2
 
import json
 
  
url = 'http://zabbix.com/zabbix/api_jsonrpc.php'
+
kubect 有好多用法
header = {'Content-Type': 'application/json'}
+
  cp             复制 files 和 directories 到 containers 和从容器中复制 files 和
 
 
req = json.dumps(
 
    {
 
        "jsonrpc": "2.0",
 
        "method": "user.login",
 
        "params": {
 
             "user": "Admin",
 
            "password": "123456"
 
        },
 
        "id": 0,
 
    }
 
)
 
 
 
def auth():
 
    r = urllib2.Request(url=url, headers=header, data=req)
 
    response = urllib2.urlopen(r)
 
    token = json.loads(response.read())
 
    print(token)
 
 
 
if __name__ == '__main__':
 
 
 
    auth()
 
 
 
#token
 
{u'jsonrpc': u'2.0', u'result': u'1794bcbe6d818069bff5aa499a07a960', u'id': 0}
 
  
 
</pre>
 
</pre>
[https://blog.51cto.com/freshair/2132748 Python调用Zabbix api之从入门到放弃——登录并获取身份验证令牌]
 
  
[https://www.jianshu.com/p/7a014f316e35 zabbix api token获取]
+
=useage=
== 我们获取必要的相关信息 ,eg所有主机list信息==
+
==pull到所以节点==
===groupid ===
 
 
<pre>
 
<pre>
cat getgroupid
+
#pull
#获取指定groupid
+
sudo docker pull  registry.cn-shenzhen.aliyuncs.com/evan886/k8s:kube-controllers
curl -s -X POST -H 'Content-Type:application/json' -d '
+
sudo docker pull registry.cn-shenzhen.aliyuncs.com/evan886/k8s:kube-proxy
{
+
sudo docker pull registry.cn-shenzhen.aliyuncs.com/evan886/k8s:kube-apiserver
    "jsonrpc": "2.0",
+
sudo docker pull registry.cn-shenzhen.aliyuncs.com/evan886/k8s:kube-controller-manager 
    "method": "hostgroup.get",
+
sudo docker pull  registry.cn-shenzhen.aliyuncs.com/evan886/k8s:kube-scheduler
    "params": {
+
sudo docker pull registry.cn-shenzhen.aliyuncs.com/evan886/k8s:flannel 
        "output": "extend",
+
sudo docker pull registry.cn-shenzhen.aliyuncs.com/evan886/k8s:coredns
        "filter": {
+
sudo docker pull 2c4adeb21b4f registry.cn-shenzhen.aliyuncs.com/evan886/k8s:etcd
            "name": [
+
sudo docker pull da86e6ba6ca1 registry.cn-shenzhen.aliyuncs.com/evan886/k8s:pause
                "Zabbix servers",
 
                "Linux servers",
 
                "sns servers"
 
            ]
 
        }
 
    },                                       
 
    "auth": "1794bcbe6d818069bff5aa423a07a960",
 
    "id": 1
 
}'  http://zbx.com/zabbix/api_jsonrpc.php | python3 -m json.tool
 
 
</pre>
 
</pre>
[https://www.cnblogs.com/zdoubly/p/9777122.html zabbix--api学习之路--get_hostgroup获取]
 
  
=== templateid===
+
==改tag为gcri==
 
<pre>
 
<pre>
#!/bin/bash
+
docker tag  registry.cn-shenzhen.aliyuncs.com/evan886/k8s:kube-controllers calico/kube-controllers:v3.7.4
#跑在我的freebsd12
+
...
#获取指定groupid
 
curl -s -X POST -H 'Content-Type:application/json' -d '
 
{
 
    "jsonrpc": "2.0",
 
    "method": "hostgroup.get",
 
    "params": {
 
        "output": "extend",
 
        "filter": {
 
            "name": [
 
                "Zabbix servers",
 
                "Linux servers"
 
            ]
 
        }
 
    },                                       
 
    "auth": "1794bcbe6d818069bff5aa423a07a960",
 
    "id": 1
 
}'  http://148.66.11.55/zabbix/api_jsonrpc.php | python3 -m json.tool
 
 
 
 
 
#output
 
"result": [
 
        {
 
            "groupid": "2",
 
            "name": "Linux servers",
 
            "internal": "0",
 
            "flags": "0"
 
        },
 
        {
 
            "groupid": "4",
 
            "name": "Zabbix servers",
 
  
 
</pre>
 
</pre>
 
+
==导出完全离线==
=== hostadd===
 
 
<pre>
 
<pre>
批量添加版  用法  分别添加 ip and hostname
+
docker save -o kube-proxy.tar k8s.gcr.io/kube-proxy:v1.15.0
 
 
 
 
#!/bin/bash
 
#注释中文导致不成功
 
#"host": "'prod-sns-mq02'",    #这里一般改为你要的hostname
 
IP=(
 
40.243.52
 
41.102.111
 
40.218.197
 
40.216.19
 
)
 
HOSTNAME=(
 
prod-sns-php01
 
prod-sns-php02
 
prod-sns-mq01
 
prod-sns-mq03
 
)
 
 
 
for  no in `seq 0 echo ${#a[@]}'
 
#for  no in `seq 2 3` #这个是手工决定 数量
 
do
 
 
 
curl -s -X POST -H 'Content-Type:application/json' -d '
 
{
 
    "jsonrpc": "2.0",
 
    "method": "host.create",
 
    "params": {
 
        "host": "'${HOSTNAME[$no]}'", 
 
 
 
        "interfaces": [
 
            {
 
                "type": 1,
 
                "main": 1,
 
                "useip": 1,
 
                "ip": "'${IP[$no]}'",
 
                "dns": "",
 
                "port": "10050"
 
            }
 
        ],
 
        "groups": [
 
            {
 
                "groupid": "2",
 
                "groupid": "16"
 
            }
 
        ],
 
        "templates": [
 
            {
 
                "templateid": "10001"
 
            }
 
        ]
 
      },
 
    "auth": "1794bcbe6d818069bff5aa4207a960",
 
    "id": 1
 
}' http://zbx.com/zabbix/api_jsonrpc.php | python -m json.tool
 
 
done
 
 
 
#要添加多一个群组
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
#!/bin/bash
 
#注释中文导致不成功
 
#"host": "'prod-sns-mq02'",    #这里一般改为你要的hostname
 
IP="
 
121.41.103.113
 
 
for node_ip in ${IP};
 
do
 
curl -s -X POST -H 'Content-Type:application/json' -d '
 
{
 
    "jsonrpc": "2.0",
 
    "method": "host.create",
 
    "params": {
 
        "host": "'prod-sns-es01'", 
 
 
 
        "interfaces": [
 
            {
 
                "type": 1,
 
                "main": 1,
 
                "useip": 1,
 
                "ip": "'${node_ip}'",
 
                "dns": "",
 
                "port": "10050"
 
            }
 
        ],
 
        "groups": [
 
            {
 
                "groupid": "2",
 
                "groupid": "16"
 
            }
 
        ],
 
        "templates": [
 
            {
 
                "templateid": "10001"
 
            }
 
        ]
 
      },
 
    "auth": "1794bcbe6d818069bff5aa423a07a960",
 
    "id": 1
 
}' http://148.66.11.55/zabbix/api_jsonrpc.php | python -m json.tool
 
done
 
 
 
#要添加多一个群组
 
  
 
</pre>
 
</pre>
=进阶=
+
[[category:k8s]]
写成通用的py脚本  ?
 
 
 
[https://www.jianshu.com/p/e087cace8ddf 利用zabbix API(python)批量查询主机、模板、添加删除主机]
 

2019年12月27日 (五) 07:38的最新版本

evan2010

k8s.gcr.io 国内镜像拉不下来的办法

[root@master tomcat]# docker images 
REPOSITORY                           TAG                 IMAGE ID            CREATED             SIZE

calico/kube-controllers              v3.7.4              e67ede28cc7e        2 weeks ago         46.8MB
k8s.gcr.io/kube-proxy                v1.15.0             d235b23c3570        3 weeks ago         82.4MB
k8s.gcr.io/kube-apiserver            v1.15.0             201c7a840312        3 weeks ago         207MB
k8s.gcr.io/kube-controller-manager   v1.15.0             8328bb49b652        3 weeks ago         159MB
k8s.gcr.io/kube-scheduler            v1.15.0             2d3813851e87        3 weeks ago         81.1MB

quay.io/coreos/flannel               v0.11.0-amd64       ff281650a721        5 months ago        52.6MB
k8s.gcr.io/coredns                   1.3.1               eb516548c180        6 months ago        40.3MB
k8s.gcr.io/etcd                      3.3.10              2c4adeb21b4f        7 months ago        258MB
k8s.gcr.io/pause                     3.1                 da86e6ba6ca1        19 months ago       742kB

calico/node                          v3.7.4              84b65b552a8f        2 weeks ago         155MB
calico/cni                           v3.7.4              203668d151b2        2 weeks ago         135MB
gcr.io/kubernetes-helm/tiller        v2.14.1             ac22eb1f780e        5 weeks ago         94.2MB

2. 从Registry中拉取镜像
$ sudo docker pull registry.cn-shenzhen.aliyuncs.com/evan886/k8s:[镜像版本号]
3. 将镜像推送到Registry
$ sudo docker login --username=linuxsa886 registry.cn-shenzhen.aliyuncs.com
$ sudo docker tag [ImageId] registry.cn-shenzhen.aliyuncs.com/evan886/k8s:[镜像版本号]
$ sudo docker push registry.cn-shenzhen.aliyuncs.com/evan886/k8s:[镜像版本号]
sudo docker push registry.cn-shenzhen.aliyuncs.com/evan886/k8s:debian_tomcatv1

kubectl v1.15.0

sudo docker tag e67ede28cc7e   registry.cn-shenzhen.aliyuncs.com/evan886/k8s:kube-controllers
sudo docker tag d235b23c3570 registry.cn-shenzhen.aliyuncs.com/evan886/k8s:kube-proxy
sudo docker tag 201c7a840312  registry.cn-shenzhen.aliyuncs.com/evan886/k8s:kube-apiserver
sudo docker tag 8328bb49b652 registry.cn-shenzhen.aliyuncs.com/evan886/k8s:kube-controller-manager  
sudo docker tag 2d3813851e87 registry.cn-shenzhen.aliyuncs.com/evan886/k8s:kube-scheduler
sudo docker tag ff281650a721 registry.cn-shenzhen.aliyuncs.com/evan886/k8s:flannel  
sudo docker tag eb516548c180 registry.cn-shenzhen.aliyuncs.com/evan886/k8s:coredns
sudo docker tag 2c4adeb21b4f registry.cn-shenzhen.aliyuncs.com/evan886/k8s:etcd
sudo docker tag da86e6ba6ca1 registry.cn-shenzhen.aliyuncs.com/evan886/k8s:pause 
sudo docker tag  registry.cn-shenzhen.aliyuncs.com/evan886/k8s:
sudo docker tag  registry.cn-shenzhen.aliyuncs.com/evan886/k8s:


#push 
sudo docker push  registry.cn-shenzhen.aliyuncs.com/evan886/k8s:kube-controllers
sudo docker push registry.cn-shenzhen.aliyuncs.com/evan886/k8s:kube-proxy
sudo docker push registry.cn-shenzhen.aliyuncs.com/evan886/k8s:kube-apiserver
sudo docker push registry.cn-shenzhen.aliyuncs.com/evan886/k8s:kube-controller-manager  
sudo docker push  registry.cn-shenzhen.aliyuncs.com/evan886/k8s:kube-scheduler
sudo docker push registry.cn-shenzhen.aliyuncs.com/evan886/k8s:flannel  
sudo docker push registry.cn-shenzhen.aliyuncs.com/evan886/k8s:coredns
sudo docker push 2c4adeb21b4f registry.cn-shenzhen.aliyuncs.com/evan886/k8s:etcd
sudo docker push da86e6ba6ca1 registry.cn-shenzhen.aliyuncs.com/evan886/k8s:pause 



kubect 有好多用法 
  cp             复制 files 和 directories 到 containers 和从容器中复制 files 和

useage

pull到所以节点

#pull
sudo docker pull  registry.cn-shenzhen.aliyuncs.com/evan886/k8s:kube-controllers
sudo docker pull registry.cn-shenzhen.aliyuncs.com/evan886/k8s:kube-proxy
sudo docker pull registry.cn-shenzhen.aliyuncs.com/evan886/k8s:kube-apiserver
sudo docker pull registry.cn-shenzhen.aliyuncs.com/evan886/k8s:kube-controller-manager  
sudo docker pull  registry.cn-shenzhen.aliyuncs.com/evan886/k8s:kube-scheduler
sudo docker pull registry.cn-shenzhen.aliyuncs.com/evan886/k8s:flannel  
sudo docker pull registry.cn-shenzhen.aliyuncs.com/evan886/k8s:coredns
sudo docker pull 2c4adeb21b4f registry.cn-shenzhen.aliyuncs.com/evan886/k8s:etcd
sudo docker pull da86e6ba6ca1 registry.cn-shenzhen.aliyuncs.com/evan886/k8s:pause 

改tag为gcri

docker tag  registry.cn-shenzhen.aliyuncs.com/evan886/k8s:kube-controllers calico/kube-controllers:v3.7.4 
...

导出完全离线

docker save -o kube-proxy.tar k8s.gcr.io/kube-proxy:v1.15.0