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

Posted bbb001

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代码发布系统之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 命令生成秘钥对:

[root@old ~]# 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 root@old
The key's randomart image is:
+--[ RSA 2048]----+
|         . .++.. |
|          o  o+  |
|         .   o.  |
|          .  ..  |
|        S.    o  |
|       o  . .. . |
|      . .. = o.  |
|       .  Eo+..  |
|        .o.o+    |
+-----------------+

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

[root@old  ~]# 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
root@9.0.0.1'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 命令测试:

[root@old ~]# 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

以上是关于代码发布系统之Ansible初使用 񫒥的主要内容,如果未能解决你的问题,请参考以下文章

[原创]实战之Ansible生成Apache多主机配置

Ansible实战之博客站点部署

Ansible之template模板

Linux系统之Ansible的基本介绍

Linux系统自动化之ansible初始配置

ansible实战应用之——自动化系统上线