代码发布系统
使用python 2.7开发的代码发布系统。是用来批量在远程主机上执行命令的。
ansible安装文件在epel源里边,需要去epel里边下载。命令如下:
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo如果没有wget,需要先安装wget,命令如下:
yum install -y wgetansible通过ssh连接被控主机。
ssh认证方式有两种,分别是:
密码
秘钥
秘钥包含公钥和私钥
生产环境中也是使用秘钥连接的。
私钥加密,公钥解密。
ping使用的是ICMP协议。
ansible的ping使用的是ssh。
同时对两个主机组进行ping测试,也可以理解为两个组的并集,下边两种方式都可以。
# 方式一ansible web,db -m ping # 主机组之间用逗号连接# 方式二 ansible "web:db" -m ping # 使用双引号包含主机组名,主机组名之间用冒号连接ping两个组之间的交集。
ansible "web:&db" -m pingping两个组之间的差集。
ansible 'web:!db' -m ping # 注意是单引号,必须。解释:web中有,db中没有的host-pattern有如下5种格式:
单个机器
直接使用ip地址等唯一标识的标志来指定目标主机。
多个机器
可以使用逗号(,)将多个IP地址或者组名连接起来。
所有机器
使用all来代替所有的主机。
可以写一个组
使用组名来代替指定的一组主机。
可以写多个分组
并集
方式一:
使用逗号(,)将两个组名连接起来。
方式二:
冒号(:)将两个组命名连接起来。
交集 :&隔开
使用:&(冒号和&)将两个组名连接起来。
差集(前边有,后边没有的) :!隔开
使用:!(冒号和惊叹号)使用将两个组名连接起来。
这里查看的是ping命令,当然也可以是其他命令。
ansible-doc -s ping这里查看的是ping命令的全部的信息,当然也可以是其他命令。
ansible-doc ping下边两条命令的作用相同,第一条是简化的写法,系统默认是的命令方式是command。
ansible web -a 'ls'ansible web -m command -a 'ls'在运行pwd命令之前切换到/tmp目录下,一般在使用编译情况下使用。
ansible web -a 'chdir=/tmp pwd'如果creates的文件存在,则不执行后面的操作。
ansible web -a 'create=/tmp pwd'如果remove的文件存在,则执行后面的操作。
ansible web -a 'removes=/tmp pwd'方法一:
tail -1 /etc/passwd # -1为数字1,显示倒数第一条方法二:
tail -1 /etc/shadow # -1为数字1,显示倒数第一条给用户交互式设置密码,由于使用交互式,所以需要输入两遍密码。
passwd alex # alex为用户名一次设置密码,用户设置的密码为数字1。
echo '1' | passwd --stdin alex< > | ; & $ 这些特殊字符command不支持。
下边的代码为脚本的内容,在当前目录创建一个名为xxoo的文件夹。
#!/bin/bash mkdir /xxoo方式一:
ansible 192.168.12.25 -m shell -a '/root/a.sh' # 执行shell脚本,前提是脚本有可执行的权限方式二:
ansible 192.168.12.25 -m shell -a 'bash a.sh'当脚本没有可执行的权限时,给脚本可执行的权限。
chmod +x a.sh # a.sh为被执行的脚本文件脚本代码意思为打印下面的那句古诗。
#!/bin/env python #coding:utf-8 print('花径不曾缘客扫,蓬门今始为君开。')如果脚本文件没有执行权限,则增加执行权限。
复制文件到远程主机
ansible db -m copy -a "dest=/tmp/a.sh src=/root/m.sh"
使用python 2.7开发的代码发布系统。
用python来操作Excel的模块。
是由日本程序猿使用Ruby语言开发的代码发布工具。使用比较繁琐,需要配置很多文件,现在已经没落了,只有少数大公司现在还在使用。而且现在这些公司也在慢慢的想ansible和saltstack方向转。
转载于:https://www.cnblogs.com/ZN-225/p/10375873.html
相关资源:ansible安装包