原文: 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-11-07 23:02:26