- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章python自动化之Ansible的安装教程由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
本文实例讲述了python自动化之ansible的安装。分享给大家供大家参考,具体如下:
一 点睛 。
ansible只需在管理端部署环境即可,建议采用yum源方式来实现部署.
二 安装ansible 。
只需要在主服务器安装(主控端) 。
1
|
[root@localhost dev]
# yum install ansible -y
|
三 测试 。
1 修改在主控机配置文件/etc/ansible/hosts 。
1
2
3
4
5
6
7
8
9
|
## green.example.com
## blue.example.com
192.168
.
0.101
192.168
.
0.102
[webservers]
## alpha.example.org
## beta.example.org
192.168
.
0.101
192.168
.
0.102
|
2 执行下面操作 。
通过ping模块测试主机的连通性,分别对单主机及组进行ping操 作,结果如下,说明安装、测试成功.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
[root@localhost ansible]
# ansible 192.168.0.101 -m ping -k
ssh password:
192.168
.
0.101
| success
=
> {
"changed"
: false,
"ping"
:
"pong"
}
[root@localhost ansible]
# ansible webservers -m ping -k
ssh password:
192.168
.
0.102
| failed!
=
> {
"msg"
:
"using a ssh password instead of a key is not possible because host key checking is enabled and sshpass does not support this. please add this host's fingerprint to your known_hosts file to manage this host."
}
192.168
.
0.101
| success
=
> {
"changed"
: false,
"ping"
:
"pong"
}
|
3 说明 。
由于主控端与被控主机未配置ssh证书信任,需要在执行ansible命令时添加-k参数,要求提供root(默认)账号密码,即在提示“ssh password:”时输入.
四 配置linux主机ssh无密码访问 。
1 点睛 。
为了避免ansible下发指令时输入目标主机密码,通过证书签名达到ssh无密码是一个好的方案,推荐使用ssh-keygen与ssh-copy-id来实现快速证书的生成及公钥下发,其中ssh-keygen生成一对密钥,使用sshcopy-id来下发生成的公钥.
第一步:需要配置与目标设备的密钥认证支持.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
[root@localhost home]
# ssh-keygen -t rsa
generating public
/
private rsa key pair.
enter
file
in
which to save the key (
/
root
/
.ssh
/
id_rsa):
/
root
/
.ssh
/
id_rsa already exists.
overwrite (y
/
n)? y
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
:
sha256:
9
/
pgnxnqvwawpss7pytjcudyhscexgyy6ngwy
/
oohtg root@localhost.localdomain
the key's randomart image
is
:
+
-
-
-
[rsa
2048
]
-
-
-
-
+
| o.
+
.o ..
*
+
+
|
| o
=
. .
=
.
=
. |
| .
+
.
+
.
=
. |
| ...o
*
o
+
. |
| e ... so.
=
.o |
| ... . ..
=
+
|
| .. .
=
.o. |
| .. o.
+
o |
| .. .o
+
. |
+
-
-
-
-
[sha256]
-
-
-
-
-
+
|
私钥文件可以存放在默认路径“~/.ssh/id_rsa”.
第二步:接下来同步公钥文件id_rsa.pub到目标主机,推荐使用ssh-copy-id公钥拷贝工具 。
1
2
3
4
5
6
7
8
9
|
[root@localhost ~]
# ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.0.102
/
usr
/
bin
/
ssh
-
copy
-
id
: info: source of key(s) to be installed:
"/root/.ssh/id_rsa.pub"
/
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
kernel \r on an \m
root@
192.168
.
0.102
's password:
number of key(s) added:
1
now
try
logging into the machine, with:
"ssh 'root@192.168.0.102'"
and
check to make sure that only the key(s) you wanted were added.
|
希望本文所述对大家python程序设计有所帮助.
原文链接:https://blog.csdn.net/chengqiuming/article/details/88084674 。
最后此篇关于python自动化之Ansible的安装教程的文章就讲到这里了,如果你想了解更多关于python自动化之Ansible的安装教程的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
尽管用户是 sudo 用户,但远程主机在运行 Ansible playbook 时仍会引发错误。 "/usr/bin/python: can't open file '/home/ludd/.ansi
只是想了解 ansible 和 ansible-galaxy 之间的核心区别是什么?从文档中,ansible-galaxy 用于管理角色(创建和发布)那么ansible是做什么用的呢?只运行剧本? 我
只是想了解 ansible 和 ansible-galaxy 之间的核心区别是什么?从文档中,ansible-galaxy 用于管理角色(创建和发布)那么ansible是做什么用的呢?只运行剧本? 我
我有一个定义如下的剧本: - name: install percona rpms hosts: imdp roles: - role1 - role2 - role3
Ansible 版本:2.4.2.0 来自 here和 here ,我可以写下面的剧本 $ cat test.yml - name: Finding Master VMs hosts: all-c
我正在运行这个 Ansible 剧本: - name: Set String set_fact: string: item loop: "{{some_var|filter()}}"
我无法在我的输出变量中搜索我用于 when 语句的指定字符串。下面的代码应该检查输出变量中的字符串“distribute-list”,但是在运行 playbook 时会出现错误。 fatal: [19
在 Ansible 中是否可以仅当处理程序出现在该播放中时才有条件地通知处理程序? 例如:我有一个多主机配置的剧本。有些主机使用 Apache 运行 PHP,有些使用 PHP-FPM。根据主机,修改
我是 ansible 的新手,正在学习 ansible 并致力于定义 ansible 脚本以在服务器上安装 confluent。在查看有关如何定义和运行 ansible 脚本的示例时,一些示例使用“a
是否可以列出Ansible角色中的任务? 即除了grepping - name以外,还有没有现成的方法可以做到这一点? 最佳答案 创建一个指定角色的简单剧本,并使用ansible-playbook选项
所以ansible-playbook有 --ask-pass和 --ask-sudo-pass .有没有办法让 ssh 先尝试没有密码,然后只有在无密码登录失败时才提示输入密码?同样,ansible
Ansible 提供了许多过滤器和条件。据我所知;应该可以实现一个 Ansible playbook 来执行一组任务,这些任务实现与图灵完备语言相同的结果。那么,图灵完备吗? 最佳答案 我觉得是这样的
我一直在寻找,但没有太多关于什么 Ansible 保险库密码文件应该是什么样的。 例如我想做: ANSIBLE_VAULT_PASSWORD_FILE=./pwdfile ansible-vault
我在运行完整的剧本时遇到了麻烦,因为后来的剧本所依赖的一些事实在早期的剧本中被修改了,但是 ansible 不会在运行中更新事实。 运行ansible somehost -m setup当整个剧本开始
我对Ansible很陌生 是否可以使用Ansible检查文件中是否存在字符串。 我要检查的是用户有权访问服务器。 这可以使用cat /etc/passwd | grep username在服务器上完成
我正在尝试使用 jinja2 通过 ansible 模板循环字典以创建多个数据源,但收到此错误 [{'msg': "AnsibleUndefinedVariable: One or more unde
我正在尝试将文件复制到/ etc。但是当我运行剧本时,我收到“msg:目标/ etc不可写”的消息。这是我的Playbook任务部分。非常感谢您的帮助。 任务: - name: copy rsyslo
我正面临这个恼人的错误:Ansible hosts are randomly unreachable #18188 . 有没有办法告诉 Ansible 如果 SSH 连接失败,再试一次?还是2倍? 根
我正在编写一个简单的任务来创建用户。作为此任务的一部分,我想从defaults / main.yml中读取密码。 默认值/ main.yml test_user:testuser test_group
当我在Ansible中使用lineinfile时,它不会写',"字符 lineinfile: 'dest=/home/xyz state=present line="CACHES="default""
我是一名优秀的程序员,十分优秀!