ansible 基本使用-1

摘要:
本文总结了当前主流的ansible批量配置管理工具。与saltstack相比,它是无代理的,并基于ssh远程管理主机。有两种远程身份验证方法:密码和密钥。安装yum yinstall ansible(如果有epel源代码,则无需安装)。pipingsstallansibilitub源代码包的安装环境。服务器python 2.6/2.6.3。管理的xopensscentosdebianredhat

概述

ansible  当前主流的批量配置管理工具,相比于saltstack 它是无agent 模式,基于ssh 去远程管理主机。有密码和密钥两种方式远程认证方式。

安装

yum -y install  ansible  (前提是有epel 源,如果没有需要安装)

pip install ansible

github源码包安装

环境

服务端

python  2.6/2.6.3.x

openssl

centos debian redhat

被管理端

openssl    python  2.6/2.6.3.x

ansible  组件

playbook      #剧本

inventory      #主机清单
modules      #功能模块
plugins        #插件
api         #接口

常见的配置

[defaults]

# some basic default values...

#inventory      = /etc/ansible/hosts                      #默认的主机清单文件
#forks          = 5                                #并发执行任务数量,默认5#host_key_checking = False                            #是否验证远程主机的指纹信息,如果要禁用验证需要去掉注释
#sudo_user      = root                           #是否提权,新版本用的是 become = root  
#timeout = 10                                #ssh 超时时间
#remote_port    = 22
#log_path = /var/log/ansible.log                    #日志路径,启用的话,注释去掉
#private_key_file = /path/to/file                    #密钥登录方式,默认关闭

inventory 使用配置

######## Ex 1: 未分组的主机清单,默认属于all 组,可以使用主机名也可以使用ip 

## green.example.com
## blue.example.com
## 192.168.100.1
## 192.168.100.10

######## Ex 2: 根据主机用户分组,例如一下清单主机都属于webservers  

## [webservers]
## alpha.example.org
## beta.example.org
## 192.168.1.100
## 192.168.1.110

# 如果你的主机名字有规律的,可以通过这种方式表示多个主机www.001.example.com  www.002.example.com  ...  
## www[001:006].example.com 


######## Ex
3: 数据库组
## [dbservers] ##
## db01.intranet.mydomain.net
## db02.intranet.mydomain.net
##
10.25.1.56 ## 10.25.1.57

 变量的使用

可以通过给主机或者主机组定义变量,在远程执行命令的时候使用该变量

vi /etc/ansible/hosts
  ##k8s-node   [node]   10.11.118.164 ansible_ssh_user=root ansible_ssh_pass=asdf http_port=80      #针对主机添加变量   10.11.118.165 ansible_ssh_user=root ansible_ssh_pass=asdf   [node:vars]      #针对主机组添加变量   http_port=6443

  ansible node  -a "echo {{http_port}}"

tips:主机后面的变量优先级大于主机组中相同变量值

vi /etc/ansible/group_vars/etcd.yml        #以主机组名字名命的文件内定义变量
  server_name: k8s-etcd                

  ansible etcd  -a "echo {{server_name}}"

tips: 当两个主机组中的主机有重复,然后两个主机组的变量定义的不同,那么前面第一次生效的变量不会被后面定义的覆盖

普通用户远程登陆后的提权问题

使用copy 模块复制文件报错

"msg": "Destination /usr/local/bin not writable"

原因:普通用户没有权限写入此目录

解决:

vi /etc/ansible/ansible.cfg

[defaults]
sudo_user      = root

[privilege_escalation]
become=True
become_method=sudo
become_user=root

首次连接目标主机 无秘钥文件的解决方法

解决方法:

    • A.在Ansible主机中,添加目标主机的指纹文件。
      但这种方法过于繁琐,失去了使用Ansible的目的。

    • B.取消秘钥文件校验
      修改ansible.confg文件(也可能是ansible.cfg)
      host_key_checking = False
      完成首次登陆之后,可再次启用此校验。

免责声明:文章转载自《ansible 基本使用-1》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Android中实现TCP和UDP传输实例微信小程序基于腾讯云对象存储的图片上传下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

流量取证-流量中提取文件

以前整理的一些东西,拿出来做备忘 PCAP 报文就是抓取实际在网络中传输的图片,视频等数据,然后以PCAP 格式存储形成的文件。工作中对离线的数据包进行回溯分析,有时会遇到将 PCAP 中的码流还原成相应的图片、视频、邮件等原有格式的需求。 从流量中取证文件大部分情况下是为了提取流量中的可执行程序。 1、 tcpxtract 安装: apt-get ins...

windbg是如何搜索符号文件的?

来个样例 我的符号目录设置是: 用我们在windows下调试必须用到的ntdll.dll模块来讲下windbg加载符号文件的过程。windbg加载符号文件时,会首先根据配置的符号目录信息,在本地符号目录中查找对应的符号文件。一个典型的搜索过程如下:F:Debug_SymbolSymbols32F:Debug_SymbolSymbols32pingme.tx...

Linux命令(一)

一、cd  切换文件夹   绝对路径(以/根目录开头的路径)   相对路径(基于某个跟目录下的路径,不以/根目录开头)   cd /home  绝对路径(以根目录开头)   cd admin  相对路径(不以根目录开头)   cd ..  返回上级目录   cd ~  返回到自己的家目录(/home/admin)   cd -  回放功能  pwd  查看...

php:// 访问各个输入/输出流

相关 php.ini 配置 allow_url_fopen :on 默认开启 该选项为on便是激活了 URL 形式的 fopen 封装协议使得可以访问 URL 对象文件等。 allow_url_include:off 默认关闭,该选项为on便是允许 包含URL 对象文件等 php://stdin, php://stdout 和 php://stderr...

LoadRunner中log的使用总结

LoadRunner中log的使用总结     1、log的设置方式。   在 runtime setting中可以设置log的生成方式:   默认的log方式:   Enable logging选中,log option是Send messages only when an error occurs.   可以修改日志的方式:   Always se...

使用作业定时压缩数据库

有一个项目上的数据库使用了几个月.mdf文件与.ldf文件加起来竟然达到了100G+,这样下去硬盘会被撑爆的。 这样的原因是因为异常情况造成某个数据表中有大量的冗余数据,将异常数据表的冗余数据清理之后,mdf文件并没有变小,因为对数据库进行了删除操作,ldf文件反而变增大很多!根据项目情况考虑使用作业方式定时压缩数据文件大小,压缩之后只有十几兆的大小。 S...