博客 2016-09-06

简介:

内部使用,大多需要个私有仓库,方便定制与管理,高速下载等


版本选择:
网上绝大部分都是使用registry 1

1.6 之后 就支持registry 2 了


下载安装: 

docker pull registry:2.5


目前最新的是2.5  当然你也可以下2.0 、2.1 ...

docker pull registry:2.1

https://github.com/docker/distribution


搭建: 

docker run --name my_registry --restart=always -d -p 5000:5000 -v /root/data_registry:/var/lib/registry  registry:2

/root/data_registry 代替container 内部的 images存放目录 /var/lib/registry


这样,你删除container ,再重新这样启动,仓库的images 还是存在的!


注:老版本的是/tmp/registry


使用:

 docker tag centos:latest 10.16.17.121:5000/centos:midea
 docker push  10.16.17.121:5000/centos

 

 这样,就可以在各client 端下载使用:

博客 2016-08-30

简介:

sed 是古老的文本处理工具,如果熟练掌握,也是利器


实例:

需求:下面中的WHERE 与SET 互换


文件1.txt的内容是这样的:

### update test.student
### WHERE
### @1=1 /* int meta=0 */
### @2='a' /* int meta=0 */
### @3=1 /* int meta=0 */
### @4='56' /* int meta=0 */
### SET
### @1=1  /* int meta=0 */
### @2='a' /* int meta=0 */
### @3=1 /* int meta=0 */
### @4='failture' /* int meta=0 */
### update test.student


方法:

sed '/WHERE/{:a;N;/SET/!ba;s/\([^\n]*\)\n\(.*\)\n\(.*\)/\3\n\2\n\1/}'  1.txt


解释:


博客 2016-07-27

简介:

总结下前端、后端遇到的排序问题


后端排序:

1.一个表一列是char ,但存的是数字

op.objects.filter(op_other='net_ip_count').extra(select={'op_char': 'CAST(op_03 AS  INTEGER)'})
.order_by('op_char')


2.一个表一列是IP

ip.objects.filter(ip_vlan=obj[1]).extra(select={'ipa': "inet_aton(ip_address)"}).order_by('ipa')


前端排序:

主要是 字典、序列 通过 前端模板排序 

1.增加模板函数:

博客 2016-07-27

使用效果:


 submit_form_using_bootstrap_modal.gif


后台PHP代码:

<?php
    $first_name = $_POST['first_name'];
    $last_name = $_POST['last_name'];
    echo "Thank you " . $first_name . " " . $last_name . " for your submission.";
?>


HTML代码: 

博客 2016-06-24

简介:

itop 开发例子. 登陆验证方法见http://blog.mreald.com/180


实现过程:

1.查看所有的对象类型

管理工具 -> 数据模型  (右边括号内就是)


2.查看特定对象包含字段(空与非空)如下图


3.查看具体实例 如下图

http://jsfiddle.net/U6qwK/6/ 上查看


4.写代码实现


aaa.png


blob.png




python 3 版本:

博客 2016-05-19

简介:

Remedy 是个流行的cmdb 管理平台,下面就其接口调用做个总结。


方法一: 调用pyARS

1.下载安装客户端  https://rrr.se/cgi/index?pg=arapi  (8的客户端,可以调用7的 server版本)

2.设置环境变量  export LD_LIBRARY_PATH=/root/test/api811linux/lib/:$LD_LIBRARY_PATH

3.安装pyARS  http://freefr.dl.sourceforge.net/project/pyars/pyars/1.8.2/pyars-1.8.2.zip

4.使用:

from pyars import erars, cars
ars = erars.erARS()
a=ars.Login('10.1.64.16:2722','username','passwd')


手册:http://pyars.sourceforge.net/docs.html


方法二: PyRemedy 


from __future__ import print_function
from pyremedy import ARS, ARSError
ars = ARS( server='10.16.4.16', port=2722, user='l1', password='aa123')

import os, atexit,rlcompleter,readline
readline.parse_and_bind('tab: complete')

ars.query(schema='Midea_CMDB_Automation',qualifier="",fields=[])
ars.fields(schema='Midea_CMDB_Automation')
a={'Chr_CIName':'aaaa', 'Chr_HostName':'bbb'}
ars.create(schema='Midea_CMDB_Automation',entry_values=a)
ars.get(schema='Midea_CMDB_Automation',entry_id='000000000000017',fields=[])



博客 2016-05-12

目标:

- python 2.7.5 -> 3.5.3    (执行更快,更多新功能。工作包括程序语法检查、修改)

- django 1.6 -> 1.9       (功能更加完善、后台更加强大)

- bootstrap 2.3 -> 4.0    (前台更加漂亮、灵活、丰富)


出现问题:


1.[Django]Django Python3出现Error loading MySQLdb module:No module named ‘MySQLdb’问题

vim /apps/dbdat/envdolphin/lib/python3.5/site-packages/django/db/backends/mysql/base.py
import pymysql
pymysql.install_as_MySQLdb()


2.'WSGIRequest' object has no attribute 'REQUEST'

return int(self.POST['page'])
Replace `request.REQUEST` with `POST` and `GET`


3.python3 TypeError: POST data should be bytes or an iterable of bytes. It cannot be of type str

	data = urllib.parse.urlencode(d).encode("utf-8")
	其中urllib2.urlopen()变成了urllib.request.urlopen()
       urllib2.Request()变成了urllib.request.Request()
	   
	   
	website_string = website_bytes_utf8.decode()   # to str
    website.encode(encoding="utf-8")  # to bit	


4.

博客 2016-04-14

场景:

内网的Ansible, 可能需要连接DMZ区,只能通过代理转发实现。


服务器配置:

1.分类

10.6.17.100 Ansible 服务器

10.6.17.110 踏板机(当代理)

172.6.2.30 远程机


2.配置ansible 服务器conf

vim ~/.ssh/conf

Host bastion
    User ansible
    HostName  10.6.17.110
    ProxyCommand none
    BatchMode yes
Host 172.16.10.*
    ServerAliveInterval 60
    TCPKeepAlive        yes
    ProxyCommand        ssh -qaY bastion 'nc -w 14400 %h %p'  #or ProxyCommand ssh -W %h:%p bastion 
    ControlMaster       auto


3.连接

ssh 172.6.2.30


参考资料:

博客 2016-04-13

简介:

想用最新的版本系统、软件,就把Ubuntu 14.10模式化安装Arch Linux(比较怀念KDE)


安装过程:

1.U盘记录ISO

如果是Linux系统,就用UNetbootin记录

或者:(是sdb,不是sdb1 哦!)

dd if=arch.iso of=/dev/sdb bs=4M


2.安装吧:

连网: wifi-menu 

查看硬盘: lsblk

格式化:

(parted) mkpart primary ext4 1MiB 100MiB
(parted) set 1 boot on
(parted) mkpart primary ext4 100MiB 20GiB
(parted) mkpart primary linux-swap 20GiB 24GiB
(parted) mkpart primary ext4 24GiB 100%
博客 2016-04-13

简介:

VMware 创建虚拟机、变更等流程比较繁琐,与现在的云平台、容器等易用性,相差很远。下面就简单介绍最近做的自动化平台上的一个项目:自动化之虚拟化


工作流程:

MIP   ->  自动化平台  ->  调用VCO   ->  VCO 创建虚拟机等动作


1. 从流程审批引擎(公司叫MIP)获取申请、审批信息


2.自动化平台 拿到数据之后 显示一个已经获取数据的表单,管理员只需简单的修改,提交,就可以生成主机等操作


实现要点:

1. 原始数据提取

原始数据是富文本编辑器内的一个表单,也就是一个字段,提取方法可见如何解析HTML


2. 提取数据 需要二次修改

第一次(修改用户填数据),只需要简单修改。比如选不同的部门、不同系统等

i-- 2/10 i++