2980315 发表于 2018-1-2 12:36:58

Ansible 基础

Ansible目录结构
  配置文件目录 /etc/ansible/
  执行文件目录 /usr/bin/
  Lib库依赖目录 /usr/lib/pythonx/site-packages/ansible/
  ansible配置文件ansible.cfg
  配置文件路径/etc/ansible/ansible.cfg
pipelining = True 管道加速功能,可提升文件传输效率
  ansible inventory配置文件hosts
  配置文件路径 /etc/ansible/hostsansible默认读取该inventory
  语法格式:
  

#定义单个server  
192.168.20.100
  
controller.openstack.com
  
controller.openstack.com:222 #默认端口22
  

  
定义group
  

  
controller.openstack.com
  
compute.openstack.com
  

  
定义主机变量
  
controller.openstack.com http_port=8080
  

  
定义group变量
  

  
ntp_server=ntp.openstack.com
  

  

  ansible变量(非常重要)
  变量通常从如下4个位置检索:
  1. Inventory配置文件hosts
  2. Playbook中定义的vars
  3. Roles中的vars目录下的文件
  4. Roles同级目录group_vars和hosts_vars目录下的文件

Ansible命令
  注意:在执行ansible命令以前,需要将所有被管理主机配置好公私钥认证
  注意:ansible命令支持正则
  ansible
  语法格式: ansible <host-pattern>
  示例1: ping模块来验证连通性
  

root@ubuntu:~# ansible openstack -m ping  

192.168.20.180 | SUCCESS => {"changed": false,"ping": "pong"  
}
  

192.168.20.182 | SUCCESS => {"changed": false,"ping": "pong"  
}
  
root@ubuntu:
~#   

  示例2:copy模块文件复制
  

root@ubuntu:~# ansible openstack -m copy -a "src=/tmp/python-memcached-1.58.tar.gz dest=/tmp/python-memcached"  
192.168.20.182 | SUCCESS => {
  "changed": true,
  "checksum": "66265a2b806fb5ecce1767b72239ac863912f355",
  "dest": "/tmp/python-memcached",
  "gid": 0,
  "group": "root",
  "md5sum": "23b258105013d14d899828d334e6b044",
  "mode": "0644",
  "owner": "root",
  "size": 30562,
  "src": "/root/.ansible/tmp/ansible-tmp-1491028332.23-112412748689813/source",
  "state": "file",
  "uid": 0
  
}
  
192.168.20.180 | SUCCESS => {
  "changed": true,
  "checksum": "66265a2b806fb5ecce1767b72239ac863912f355",
  "dest": "/tmp/python-memcached",
  "gid": 0,
  "group": "root",
  "md5sum": "23b258105013d14d899828d334e6b044",
  "mode": "0644",
  "owner": "root",
  "size": 30562,
  "src": "/root/.ansible/tmp/ansible-tmp-1491028332.22-93298111994658/source",
  "state": "file",
  "uid": 0
  
}
  
root@ubuntu:~#
  

  ansible-playbook
  语法格式:ansible-playbook playbook.yml
  ansible-vault
  语法格式:ansible-vault encrypt playbook.yml
  ansible并发
  ansible和ansible-playbook默认fork5个线程。
  可以通过-f 选项来指定需要fork的线程数。
  也可以在ansible.cfg配置文件中修改,这里我们修改为 forks 20个线程
  

  

  
# some basic
default values...  

  
#inventory
= /etc/ansible/hosts  
#library
= /usr/share/my_modules/  
#remote_tmp
= $HOME/.ansible/tmp  
forks
= 20  
#poll_interval
= 15  
#sudo_user
= root  
#ask_sudo_pass
= True  
#ask_pass
= True  
#transport
= smart  
#remote_port
= 22  
#module_lang
= C  
页: [1]
查看完整版本: Ansible 基础