ansible
Posted yun9678
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ansible相关的知识,希望对你有一定的参考价值。
iaas 基础架构及服务
场景:虚拟机硬件环境 自己部署软件
paas: 平台机架构里边有硬件操作系统有开发环境,可直接工作
saas :软件机服务 在PaaS的基础上连软件都做好了
微软的‘’office‘’软件可直接在在浏览器上运行
Ansible 基于Python开发的;不需要配置代理 可以基于ssh协议实现远程管理 主机少用
Saltstack:基于Python开发的;主机多用
一台主机控制多台主机 = 主控端控制被控端 被控端装代理程序
ssh ip 输入被控端密码控制 这就是无代理的 ssh是加密的相对来说是安全的
Ansible 是一个自动化运维工具
shell语言 ewk 语言
幂等性:同样的事情执行多遍 不会报错
支持其他语言写模块。支持playbook编排任务
Ansible工作架构 Ansible是主控端控制别的主机,配置文件管理主机。
Ansible工作原理、
运维工作是敲命令,也可playbool 相当于写脚本
Ansible主要组成部分inventory清单 模块 playbook
Control Node:控制机器
2)Inventory:主机清单
3)Playbooks:剧本、任务编排。根据规则定义多个任务,模块组织结构清晰,由ansible自动执行
4)Modules(Core|Custom):模块,用于执行某个具体的任务
5)connection plugin (连接插件):ansible 通过不同的协议连接到远程主机上,执行指定的命令。默认采用ssh协议连接远程主机
Ad Hoc 相当于敲单个命令
命令:ansible --version 查看版本 模块的路径 二进制命令的位置吧
ansible ip -m ping -k 回应 pong
ansible-doc 显示模块帮助,-l显示模块列表
我们常用的几个模块:
copy file cron group user yum service script ping command raw get_url synchronize
ansible ‘*‘ -m command -a ‘uptime‘
‘*‘:自己定义的主机 -m command:命令
# 指定节点上的权限,属主和数组为root
ansible ‘*‘ -m file -a "dest=/tmp/t.sh mode=755 owner=root group=root"
#指定节点上定义一个计划任务,每隔3分钟到主控端更新一次时间
ansible ‘*‘ -m cron -a ‘name="custom job" minute=*/3 hour=* day=* month=* weekday=* job="/usr/sbin/ntpdate 172.16.254.139"‘
# 指定节点上创建一个组名为aaa,gid为2017的组
ansible all -m group -a ‘gid=2017 name=a‘
# 在节点上创建一个用户aaa,组为aaa
ansible all -m user -a ‘name=aaa groups=aaa state=present‘
删除用户示例
ansible all -m user -a ‘name=aaa groups=aaa remove=yes‘
# 在节点上安装httpd
ansible all -m yum -a "state=present name=httpd"
# 在节点上启动服务,并开机自启动
ansible all -m service -a ‘name=httpd state=started enabled=yes‘
# 检查主机连接
ansible ‘*‘ -m ping
# 执行远程命令
ansible ‘*‘ -m command -a ‘uptime‘
# 执行主控端脚本
ansible ‘*‘ -m script -a ‘/root/test.sh‘
# 执行远程主机的脚本
ansible ‘*‘ -m shell -a ‘ps aux|grep zabbix‘
# 类似shell
ansible ‘*‘ -m raw -a "ps aux|grep zabbix|awk ‘{print $2}‘"
# 创建软链接
ansible ‘*‘ -m file -a "src=/etc/resolv.conf dest=/tmp/resolv.conf state=link"
# 删除软链接
ansible ‘*‘ -m file -a "path=/tmp/resolv.conf state=absent"
# 复制文件到远程服务器
ansible ‘*‘ -m copy -a "src=/etc/ansible/ansible.cfg dest=/tmp/ansible.cfg owner=root group=root mode=0644"
# 在节点上运行hostname
nsible all -m raw -a ‘hostname|tee‘
# 将指定url上的文件下载到/tmp下
ansible all -m get_url -a ‘url=http://10.1.1.116/favicon.ico dest=/tmp‘
以上是关于ansible的主要内容,如果未能解决你的问题,请参考以下文章
Ansibleansible安装,用户级执行ansible命令,清单构建,配置文件详解
Ansibleansible安装,用户级执行ansible命令,清单构建,配置文件详解