【代码发布系统之Ansible初使用】 񫒥

原文: http://blog.gqylpy.com/gqy/372

"# 下载安装
1.先准备好epel源:

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

2.开始下载安装:

yum -y install ansible

ansible 命令格式

基本命令格式:ansible [模块]

参数如下

  • -a MODULE_ARGS 模块参数
  • -C --check 检查语法
  • -f FORKS 并发
  • -m MODULE_NAME 模块名称
  • --list-hosts 列出所有主机

主机匹配规则

  • 单个主机:直接输入目标主机即可
  • 多个主机:使用 逗号 隔开
  • 全部主机:使用 all 代替
  • 单个分组:直接输入分组名称即可
  • 多个分组:使用 逗号 或 冒号 隔开,如果是取交集,则使用 :& 隔开,如果是取差集,则使用 :! 隔开

ansible-doc 命令

参数如下

  • -j 以JSON格式显示所有模块信息
  • -l 列出所有的模块
  • -s 显示模块的摘要信息

使用ssh认证方式连接

补充知识点

  • ssh-keygen 生成密钥对
  • ssh-copy-id 目标主机 将公钥复制到目标主机

第一步 使用 ssh-keygen 命令生成秘钥对:

[[email protected] ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):   # 默认路径,直接回车即可
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):   # 生成秘钥
Enter same passphrase again:   # 确认秘钥
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
8e:ff:cd:5e:34:04:95:ec:04:83:ec:ee:dd:e0:d2:68 [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
|         . .++.. |
|          o  o+  |
|         .   o.  |
|          .  ..  |
|        S.    o  |
|       o  . .. . |
|      . .. = o.  |
|       .  Eo+..  |
|        .o.o+    |
+-----------------+

第二步 使用 ssh-copy-id 目标主机 命令将公钥复制到所有 被管控主机 上:

[[email protected]  ~]# ssh-copy-id 9.0.0.2
The authenticity of host '9.0.0.1 (9.0.0.1)' can't be established.
ECDSA key fingerprint is 52:70:64:73:95:ba:b5:6e:63:bb:35:da:7e:1c:5c:d7.
Are you sure you want to continue connecting (yes/no)? yes  # !
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password:   # 输入目标主机密码

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '9.0.0.1'"
and check to make sure that only the key(s) you wanted were added.

第三步/etc/ansible/hosts 文件内添加被管控主机:

[web]  # 分组名称
9.0.0.2  # 被管控主机
9.0.0.3

[db]
9.0.0.4

# ‘#’ 为注释
# 空行将被忽略
# [xx] 表示分组
# 可以输入主机名或IP地址
# 一台主机可以被分配至多个分组

第四步 使用 ping 命令测试:

[[email protected] ~]# ansible all -m ping
9.0.0.2 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
9.0.0.3 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
9.0.0.4 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

# 命令中的 all 表示所有的被管控主机, -m 参数用于指定模块

需要注意的是,默认的 ping 命令走的是 ICMP 协议,而 ansible 中的 ping 命令是使用 ssh 来测试连通性的。

到这里,我们的 ansible 已经配置完毕了。

"

原文: http://blog.gqylpy.com/gqy/372

原文地址:https://www.cnblogs.com/bbb001/p/11374506.html

时间: 2024-08-30 11:26:39

【代码发布系统之Ansible初使用】 񫒥的相关文章

自动化代码发布系统实现

日常运维问题 在我日常运维工作中,代码发布可能是最普遍的一项工作之一,尤其是网页代码的更新,碎片化发布需求非常频繁.在前期开发人员比较少时,还可以由自己来上服务器通过脚本来发布代码.但随着公司项目的增多,更多的开发人员加入到公司,发布代码需求开始增多,这就占用了我大部分时间,经常的被打断其它工作来发布代码,非常地不爽,然后开始想解决方法. 尝试解决问题 当然,发布代码肯定是运维的职责之一了,但频繁的发布导致运维大部分时间浪费在重复的操作上,非常的不值得.基于此,开始限制代码发布频率,要求把不是很

代码发布系统实现

文章目录 [隐藏] 关于项目开源 日常运维问题 尝试解决问题 最终解决方案 开源技术使用 代码发布流程 最后想说的话 关于项目开源 由于挺多同学请求开源此项目,在这里说明一下:其实本人是想开源的,由于是本人写的第一个运维方面的系统,且写这个项目的时间时间紧,只达到了可以使用的程度,完全没有达到开源的要求,希望理解! 日常运维问题 在我日常运维工作中,代码发布可能是最普遍的一项工作之一,尤其是网页代码的更新,碎片化发布需求非常频繁.在前期开发人员比较少时,还可以由自己 来上服务器通过脚本来发布代码

代码发布系统三

django基于channels完成群聊功能 后端框架不一定默认支持websocket 三步走前期配置 """ http协议还是走 urls.py 与 views.py /index/ index 浏览器地址栏输入网址即可 websocket协议走routing.py 与 consumers.py /chat/ ChatConsumer 借助于js内置对象new WebSocket('ws://127.0.0.1:8080/chat/') """

svn 结合rsync 的代码发布系统

由开发提交到测试环境,经测试,在由运维统一上线.试验需求一台测试服务器,一台线上(生产环境)服务器.测试服务器上跑svn是开发用于代码管理,而线上跑的svn是运维用来代码上线的.结合rsync保持测试端的代码与 svn的线上控制端(线上svn,在测试服务器上的一个workcopy)的代码保持一致.开发结合运维,并由运维周期性的提交代码,如果有问题,回滚,保证线上正常!! svn服务器上chackout 一个workcopy 在用户端:(注意防火墙) [[email protected] ~]#

代码发布系统二

服务端如何给客户端推送消息 轮询(效率低.基本不用) """ 让客户端浏览器定时朝服务端发送请求数据的请求(比如每隔5s一次) 不足之处 消息延迟明显 消耗资源 """ 长轮询(兼容性好.使用较多) """ 服务端给每一个第一次来链接的客户端浏览器创建一个队列,之后客户端浏览器通过ajax朝各自的队列索要数据,如果没有数据会阻塞但是不会一直阻塞(pending),用了timeout加异常处理经过30s自动回去然后再次

基于saltstack svn写的一个发布系统

之前写了一个代码发布系统,功能,体验还有待完善,先放截图,想获得源码的,私聊我 1.登录页 2.分组管理页 3.添加项目页 4.项目列表和项目编辑页 5.项目发布回滚页

代码发布

代码发布系统 腾讯(蓝鲸) http://bk.tencent.com Murder(推特)  基于管理工具[capistrano]+比特流[bittornado]                             Ruby                  python 代码发布流程 l 程序员开发 l 合并代码 l 发布 --编译 --非编译 --推送(扩展)到指定服务器  注册事件       在互联网产品的发布过程中也较多采用此种发布方式:产品的发布过程不是一蹴而就,而是逐步扩大使

一步一步用jenkins,ansible,supervisor打造一个web构建发布系统

新blog地址:http://hengyunabc.github.io/deploy-system-build-with-jenkins-ansible-supervisor/ 一步一步用jenkins,ansible,supervisor打造一个web构建发布系统. 本来应该还有gitlab这一环节的,但是感觉加上,内容会增加很多.所以直接用github上的spring-mvc-showcase项目来做演示. https://github.com/spring-projects/spring-

【牛腩新闻发布系统 一】如何高效写代码

在看牛腩老师讲新闻发布系统的时候,它讲到一个TODO任务,于是就百度了一下VS的任务列表功能,才发现它的功能是如此的强大啊,我们直接就可以在VS中制定任务,完成任务了!还有一些设置模板库的功能,这在无形之中提高了我们编写代码的效率.   1.VS的任务列表查看,可以通过 依次点击:视图--其他窗口--任务列表,或者直接按Ctrl+Alt+K,然后在你代码的下方就可以看到任务列表的内容了.VS的任务列表有两个基本功能:用户任务以及注释. (1)用户任务 我觉得这个用户任务就像是我们平常给自己定的计