配置运行Ansible

配置Ansible环境

note:在这之后博主的实验环境都是使用源码包安装的Ansible环境。

1.在运行ansible命令时,命令将会按照预先设定的顺序查找配置文件。

(1)ANSIBLE_CONFIG:首先,ansible命令会检查环境变量,及这个环境变量将指向的配置文件。
(2)./ansible.cfg:其次,将会检查当前目录下的ansible.cfg配置文件。
(3)~/.ansible.cfg:再次,将会检查当前用户home目录下的.ansible.cfg配置文件。
(4)/etc/ansible/ansible.cfg:最后,将会检查在用软件包管理工具安装ansible时自动产生的配置文件。

如果是通过操作系统软件包管理工具或pip安装,那么你在/etc/ansible目录下应该已经有了ansible.cfg配置文件;如果你是通过GitHub仓库安装的,在你赋值的仓库中examples目录下可以找到ansible.cfg,可以把它拷贝到/etc/ansible目录下。

2.使用环境变量方式来配置

大多数的ansible参数可以通过设置带有ANSIBLE_开头的环境变量进行配置,参数名称必须都是大写字母,如下配置项:
export ANSIBLE_SUDO_USER=root

设置环境变量之后playbook可以直接引用。

3.设置ansible.cfg配置参数

常见配置参数:
inventory–这个参数表示资源清单inventory文件配置,资源清单就是一些ansible需要链接管理的主机列表。安装完ansible之后默认所在的inventory列表配置如下:
inventory = /etc/ansible/hosts

library–Ansible的操作动作,无论是本地或远程,都使用一小段代码来执行。这小段代码成为模块,这个library参数就是只想存放在Ansible模块的目录。Ansible支持多个目录方式,只要用冒号(:)隔开就可以,同时也会检查当前执行playbook位置下的./library位置。默认的配置如下:
library = /usr/share/ansible

forks–设置默认情况下Ansible最多能有多少个进程同时工作,默认设置最多5个进程并行处理。具体需要设置多少个,可以根据控制主机的性能和被管理节点的数量来确定。默认参数配置如下:
forks = 5

sudo_user–这个设置默认执行命令的用户,在playbook中重新设置这个参数。默认参数配置如下:
sudo_user = root

remote_port–这个是指定链接被管节点的管理端口,默认22。除非设置了特殊的SSH端口,不然这个参数一般是不需要修改的。默认配置如下:
remote_port = 22

host_key_checking–这个设置是否检查SSH主机的秘钥。可以设置为True或者False。默认配置如下:
host_key_checking = false

timeout–这是设置SSH链接的超时间隔,单位是秒。默认配置实例如下:
timeout = 60

log_path–Ansible系统默认是不记录日志的,如果想把Ansible系统的输出记录到日志文件中,需要设置log_path来指定一个存储Ansible日志的文件。配置实例如下:
log_path = /var/log/ansible.log

4.配置Linux主机SSH无密码访问

4.1生成秘钥

#ssh-keygen -t rsa

4.2将秘钥拷贝到预管理的节点上

#ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.116.130

尝试ssh root@192.168.116.130发现还是不行。查看被管理节点上的日志。

这里写图片描述

错误的属组关系,因为这台机器上部署了devstack,root目录有附加权限:
这里写图片描述
这里写图片描述

属组有额外写权限,去掉就好:

#chmod g-w /root

同时在被控制节点上保证 /root/.ssh有700权限。
/root/.ssh/authorized_key有600权限。

5.Ansible小试身手

启用ansible,如果使用github安装的源码包则需要使用env-setup启动

source ./hacking/env-setup -q
export ANSIBLE_SUDO_USER=root
echo "127.0.0.1" > ~/ansible_hosts
export ANSIBLE_HOSTS=~/ansible_hosts

修改主机与组配置

#vim /etc/ansible/hosts

#web1
#devstack
192.168.116.129
192.168.116.130

[webservers]
#web1
#devsack
192.168.116.129
192.168.116.130

对单台机器ping操作:
这里写图片描述
对组器进行ping操作:
这里写图片描述
在这里测试时在控制主机与被管理节点之间配置了SSH证书信任。如果没有用证书认证,则需要执行ansible命令时添加-k参数,在提示“SSH password:”时输入root(默认)账号密码。实际生产环境中,大多数更倾向于使用Linux普通用户账户进行连接并通过sudo命令实现root权限,格式为:
ansible webservers -m ping -u ansible -sudo

5.2在被管理节点上批量执行命令

在用户home目录下创建一个资源清单文件inventory.cfg内容如下:

# cat inventory.cfg
[webservers]
192.168.116.129
192.168.116.130

用ansible的shell模块在webservers组的个服务器上显示“hello ansible!”命令如下:

# ansible webservers -m shell -a '/bin/echo hello ansible!' -i inventory.cfg

这里写图片描述

用ansible的command模块实现同样的结果

#ansible webservers -m command -a '/bin/echo hello ansible!' -i inventory.cfg

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VMware是一种虚拟化软件,它可以在一台物计算机上创建多个虚拟机,每个虚拟机都可以独立运行操作系统和应用。而Ansible是一种自动化工具,可以用于配置和管理多台计算机。 要在三台虚拟机上配置Ansible,首先需要确保这三台虚拟机已经正确安装了操作系统。然后,按照以下步骤进行配置: 1. 安装Ansible:在其中一台虚拟机上安装Ansible软件。可以使用以下命令在Ubuntu上安装Ansible: ``` sudo apt update sudo apt install ansible ``` 2. 配置SSH连接:确保三台虚拟机之间可以通过SSH进行连接。可以使用以下命令生成SSH密钥对,并将公钥复制到其他两台虚拟机上: ``` ssh-keygen ssh-copy-id user@ip_address ``` 3. 创建Ansible主机清单文件:在Ansible主机上创建一个清单文件,用于指定要管理的目标主机。可以使用文本编辑器创建一个名为`hosts`的文件,并在其中列出三台虚拟机的IP地址或主机名: ``` [servers] server1 ansible_host=ip_address1 server2 ansible_host=ip_address2 server3 ansible_host=ip_address3 ``` 4. 创建Ansible配置文件:在Ansible主机上创建一个配置文件,用于指定一些全局配置选项。可以使用文本编辑器创建一个名为`ansible.cfg`的文件,并在其中添加以下内容: ``` [defaults] inventory = /path/to/hosts ``` 5. 测试连接:使用以下命令测试Ansible主机与目标主机之间的连接: ``` ansible -m ping all ``` 6. 编写Playbook:使用Ansible的Playbook语法编写一个用于配置目标主机的脚本。可以创建一个名为`playbook.yml`的文件,并在其中定义任务和配置项。 以上是在三台虚拟机上配置Ansible的基本步骤。你可以根据具体需求和场景进一步扩展和配置Ansible
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值