配置运行Ansible
来源:互联网 发布:linux 提权漏洞 编辑:程序博客网 时间:2024/06/02 08:53
配置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 -qexport ANSIBLE_SUDO_USER=rootecho "127.0.0.1" > ~/ansible_hostsexport ANSIBLE_HOSTS=~/ansible_hosts
修改主机与组配置
#vim /etc/ansible/hosts#web1#devstack192.168.116.129192.168.116.130[webservers]#web1#devsack192.168.116.129192.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.129192.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
- 配置运行Ansible
- ansible 配置运行环境
- ansible之并发运行
- ansible之并发运行
- Ansible安装及配置
- ansible.cfg 参数配置
- 配置Ansible环境
- ansible 配置使用
- ansible安装配置
- ansible配置使用
- ansible 配置变量
- ansible的搭建配置
- ansible安装配置zabbix客户端
- Ansible安装和基本配置
- ansible配置及简单操作
- Ansible 服务器配置工具常见问题
- Ansible playbook简介与配置
- ansible小结(四)ansible.cfg与默认配置
- 垃圾收集器核心算法
- Android 弹框选中显示
- 马克思政治经济学里关于价值的理论
- Python yield与实现
- perl eval两种使用方式
- 配置运行Ansible
- 显示商品浏览记录与删除浏览记录
- Window10开启Linux Bash功能
- PHP命令链模式
- css总结
- electron打包asar文件说明
- 接受
- Linux服务器部署上线步骤
- 困了,写一个自定义环形进度条