配置Ansible环境
来源:互联网 发布:hp m1216nfh 网络驱动 编辑:程序博客网 时间:2024/06/05 08:30
配置Ansible环境
note:在这之后博主的实验环境都是使用源码包安装的Ansible环境。
1.配置文件优先级
在运行ansible命令时,命令将会按照预先设定的顺序查找配置文件。
(1)ANSIBLE_CONFIG:首先,ansible命令会检查环境变量,及这个环境变量将指向的配置文件。可以通过导入环境变量的方式来做修改,例如:export ANSIBLE_CONFIG=/directory_path
(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配置参数
常见配置参数:
ansible_ssh_host 定义host ssh地址 ansible_ssh_host=192.168.1.117ansible_ssh_port 定义hosts ssh端口 ansible_ssh_port=5000ansible_ssh_user 定义hosts ssh认证用户 ansible_ssh_user=yadminansible_ssh_pass 定义hosts ssh认证密码 ansible_ssh_pass='123456'ansible_sudo 定义hosts sudo用 户 ansible_sudo=yadminansible_sudo_pass 定义hosts sudo密码 ansible_sudo_pass='123456'ansible_sudo_exe 定义hosts sudo路径 ansible_sudo_exe=/usr/bin/sudoansible_connection 定义hosts连接方式 ansible_connection=localansible_ssh_private_key_file 定义hosts私钥 ansible_ssh_private_key_file=/root/keyansible_shell_type 定义hosts shell类型 ansible_shell_type=zshansible_python_interpreter 定义hosts任务执行python路径 ansible_python_interpreter=/usr/bin/pyhon2.6ansible_*_interpreter 定义hosts其他语言解析器路径 ansible_ruby_interpreter=/usr/bin/ruby
配置Linux主机SSH无密码访问
如果ansible服务端与其下的主机没有配置互信,那么在做ansible的执行访问的时候那就需要你在hosts文件或者inventory文件或者在指令中添加需要访问主机的密码了。这里为了之后的实验我们还是先做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用户为例,在配置root用户互信的时候/root/.ssh/目录除了目录属主(root)可以具有write权限以外,属组和其他用户都不能对root目录和.ssh目录具有write权限。authorized_keys文件的权限应该为600。
5.ansible的简单实例
博主的整个实验环境都是在github上下载的源码部署的ansible环境,所以有些操作是pip或者Mac上不一样的,请酌情根据自己机器环境实验。
启用ansible,如果使用github安装的源码包则需要使用env-setup启动
source ./hacking/env-setup -q #这里目录是以ansible源码包为相对目录下export 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操作:
#ansible 192.168.116.130 -m ping
对组器进行ping操作:
-m是加载模块参数。这里我们加载的是ping模块来尝试与机器ping。
在这里测试时在控制主机与被管理节点之间配置了SSH证书信任。如果没有用证书认证,则需要执行ansible命令时添加-k参数,在提示“SSH password:”时输入root(默认)账号密码。实际生产环境中,大多数更倾向于使用Linux普通用户账户进行连接并通过sudo命令实现root权限,格式为:
ansible webservers -m ping -u ansible -sudo
在被管理节点上批量执行命令
在用户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 配置运行环境
- CentOS 6.5环境使用ansible剧本自动化部署Corosync + pacemaker环境及corosync常用配置详解
- Ansible安装及配置
- ansible.cfg 参数配置
- 配置运行Ansible
- ansible 配置使用
- ansible安装配置
- ansible配置使用
- ansible 配置变量
- ansible的搭建配置
- ansible安装配置zabbix客户端
- Ansible安装和基本配置
- ansible配置及简单操作
- Ansible 服务器配置工具常见问题
- Ansible playbook简介与配置
- ansible小结(四)ansible.cfg与默认配置
- Ansible主机清单文件及ansible.cfg常用配置
- jQuery从零开始基础入门教程及参数汇总
- KEIL工具之编译优化选项
- TabLayout与ViewPager和Fragment、FragmentPagerAdapter的配合使用
- 【BLE】CC2541之配对密码的重置
- input
- 配置Ansible环境
- Android开发之实现瀑布流效果(RecyclerView)
- svn(1)------linux下安装svn(subversion)
- Socket开发框架之框架设计及分析
- 小埋买书
- 125个基本的C#面试问答
- 位图排序、多路归并排序-应对磁盘文件排序
- 移动App测试“黑三段”
- 1420.Prepared for New Acmer