Ansible搭建与基础命令

概念

  • ansible是2013年退出的一款IT自动化和DevOps软件,2015年被RedHat收购.是基于Python研发,柔和很多老运维工具的优点,实现了批量操作系统配置,批量程序部署,批量运行命令的功能
  • ansible可以实现:
    • 自动化部署APP
    • 自动化管理配置项
    • 自动化持续交付
    • 自动化(AWS)云服务管理
  • ansible优点
    • 活跃度高,学习成本低,适用范围广
    • 只需要ssh和python即可使用
    • 无客户端
    • 功能强大,模块丰富
    • 上手容易,门槛低
    • 基于python开发,做二次开发容易
    • 使用公司比较多,社区活跃

安装

软件依赖关系
  • 管理主机要求Python2.6或者Python2.7以上
  • ansible使用以下模块都需要安装: paramiko PyYAML Jinja2 httplib2 six
  • 被托管主机需要:
    • ansible默认通过ssh协议管理机器
    • 被管理主机要开启ssh服务,允许ansible主机登录
    • 在托管节点上也需要安装Python2.5或以上的版本
    • 如果托管节点上开启了SELinux,需要安装libselinux-python
  • 安装及验证
    • 托管主机上配置yum配置文件,安装yum -y install ansible ,验证命令ansible --version

主机定义与分组

  • ansible配置文件查找顺序

    • 首先检测ANSIBLE_CONFIG变量定义的配置文件
    • 其次检查当前目录下的./ansible.cfg 文件
    • 再次检查当前用户家目录下的 ~/ansible.cfg文件
    • 最后检查/etc/ansible/ansible.cfg文件
  • /etc/ansible/ansible.cfg是ansible的默认配置文件路径

  • ansible.cfg配置文件

    • inventory定义托管主机地址配置文件路径名
    • inventory制定的配置文件,写入远程主机的地址
    • ssh 主机 key 验证配置参数
    • host_key_checking = False(如果为False,不需要输入yes,如果为True,等待输入yes)
  • 格式

    • [组名称]
    • 主机名称或ip地址,其他参数
vim /etc/ansible/ansible.conf
14 inventory      = /etc/ansible/hosts 	//inventory配置文件
61 host_key_checking = False	//用户不用yes确认,取消交互

vim /etc/ansible/hosts
末尾添加:
[web]	//分组
web1
web2
[db]	//db分组
[other]	
cache

ansible命令基础

  • ansible主机集合 -m模块名称 -a模块参数
    • 主机集合 主机名或分组名,多个使用"逗号"分隔
    • -m 模块名称,默认command模块
    • -a or --args 模块参数
  • 其他参数
    • -i inventory 文件路径,或可执行脚本
    • -k 使用交互式登录密码
    • -e 定义变量
    • -v 显示详细信息

uptime – 查看系统负载,最后三个值分别代表1分钟,5分钟,15分钟平均负载

部署证书文件
ansible是通过SSH在远程执行命令的
SSH远程执行命令必须要通过认证才行
密码写入配置文件安全性很差
使用key方式认证
cd /root/.ssh
ssh-keygen -t rsa -b 2048 -N '' -f key
给所有主机部署公钥
ssh-copy-id -i key.put 主机名称
	-	没有秘钥命令执行会出错
	-	ansible web -a 'uptime'
inventory扩展参数
1.ansible_ssh_port	//ssh端口号:如果不是默认的端口号,通过此变量设置
2.ansible_ssh_user	//默认的ssh用户名
3.ansible_ssh_pricate_key_file 	//ssh使用的私钥文件,适用于有多个密钥,并且不想使用ssh代理的情况
4.vars变量定义,用于组名后面,
	[all:vars]
	ansible_ssh_private_key_file="/root/.ssh/key"
5.自定义配置文件
	创建文件夹myansible
	创建配置文件ansible.cfg
	[defaults]
	inventory=myhost
	host_key_checking=False
	配置主机文件
	[app1]
	web1
	db1
	ansible app1 --list-hosts
发布了18 篇原创文章 · 获赞 23 · 访问量 3078

猜你喜欢

转载自blog.csdn.net/qq_42130112/article/details/103887058
今日推荐