码迷,mamicode.com
首页 > 其他好文 > 详细

ansible 基本使用-1

时间:2020-07-10 13:45:45      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:ack   ble   日志   als   密码   认证方式   默认   表示   模块   

概述

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: 当两个主机组中的主机有重复,然后两个主机组的变量定义的不同,那么前面第一次生效的变量不会被后面定义的覆盖

 

ansible 基本使用-1

标签:ack   ble   日志   als   密码   认证方式   默认   表示   模块   

原文地址:https://www.cnblogs.com/fanggege/p/13274878.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!