首页 > 其他 > 详细

ansible

时间:2021-03-15 22:57:07      阅读:25      评论:0      收藏:0      [点我收藏+]

ansible主要组成部分

user: 普通用户,即system administrator
cmdb: 配置管理数据库,api调用
public/private cloud api调用
user -》 ansible playbook -》 ansible

利用 ansible实现管理的方式
ad-hoc 即ansible命令 主要用于临时使用场景
ansible-playbook主要用于长期规划好的,大型项目的场景,需要有前提的规划


ansible-playbook剧本执行流程
1,将已有的编排好的任务集写入 ansible-book
2,通过ansible-playbook命令分拆任务集至每条ansible命令,按预定的规则执行

ansible主要操作对象
1 host主机
2 networking网络设备

注意事项:
执行ansible的主机一般为主控端,中控, master或者堡垒机
主控端 python 版本需要2.6以上
被控端python 版本小于2.4需要安装python-simplejson
被控端如开启selinux 需要安装 libselinux-python
windows 不能做为主控端

ansible的用法

ansible通过ssh实现配置管理,应用部署,任务执行等功能,建议配置ansbile端能基于密钥认证的方式联系各被管理的节点
ansible <host-pattern> [-m module_name] [-a args]
  --version 显示版本
  -m module 指定模块, 默认为command
  -v 详细过程 -vv -vvv更详细
  -k --ask-pass 提示输入ssh连接密码 默认key验证
  --list-hosts 显示主机列表 可简写 --list
  -K --ask-become-pass 提示输入sudo时的口令
  -C --check 检查 并不执行
  -T --timeout=TIMEOUT 执行命令超时时间
  -u --user=REMOTE_USER 执行远程执行的用户
  -b --become 代替旧版的sudo切换


ansible-doc -s 模块名 即列出模块的使用详情

 

ansible 基于key验证

key验证

ssh-keygen
ssh-copy-id 192.168.30.101

 

ansible的Host-pattern

ansible的Host-pattern
匹配主机的列表
ALL:表示所有inventory中的所有主机
 ansible all -m ping 

* 通配符
ansible "*" -m ping
ansible 192.168.1.* -m ping

ansible 命令执行过程

ansible 命令执行过程
1 加载自己的配置文件 默认 /etc/ansible/ansible.cfg
2 加载自己对应的模块文件 如command
3 通过ansible将模块或者命令生成的临时py文件,并将该文件传送至远端服务器的对应执行用户 $HOME/.ansible/tmp/ansible-tem-数字/xxx.py文件
4 给文件+x执行
5 执行并返回结果
6 删除临时py文件 ,sleep 0退出

执行状态

绿色:执行成功并且不需要改变的操作
黄色:执行成功并且需要对目标主机变更
红色:执行失败

 

ansible command 通过参数 a执行命令

 ansible webgroup -a chdir=/home mkdir aaa‘  chdir=/home 切换到home目录下 创建一个aaa 的文件

  ansible webgroup -a ‘df -h‘  # 查看 主机分组中的 内存配置

ansible webgroup -a ‘chmod +x /home/tang.py‘ # 给文件加执行权限

 

 

 ansible shell 模块

ansible webgroup -m shell -a ‘echo $HOSTNAME‘ # 参数要放在单引号中

ansible script 模块 运行脚本

ansible webgroup -m script -a /root/host.sh

host.sh

#! /bin/bash
hostname

返回详情

103.100.208.80 | CHANGED => {
    "changed": true, 
    "rc": 0, 
    "stderr": "Shared connection to 103.100.208.80 closed.\r\n", 
    "stderr_lines": [
        "Shared connection to 103.100.208.80 closed."
    ], 
    "stdout": "lalala\r\n", 
    "stdout_lines": [
        "lalala"
    ]
}

 

ansible copy 模型

ansible webgroup -m copy src=/root/ansible/selinux dest=/etc/selinux/config backup=yes‘   backup=yes 是备份的意思

 

ansible

原文:https://www.cnblogs.com/tangda/p/14536701.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!