一、环境
主机 | 系统 | 角色 |
192.168.10.200 | centos-7 | ansible管理 |
192.168.10.210 | centos-7 | 被管理主机 |
192.168.10.211 | centos-7 | 被管理主机 |
1 [root@ansible ~]# hostnamectl 2 Static hostname: ansible 3 Icon name: computer-vm 4 Chassis: vm 5 Machine ID: de646e2f538548169ed072b494dc78b2 6 Boot ID: 1b88c107784b42b9aa456cf4d1e4120c 7 Virtualization: vmware 8 Operating System: CentOS Linux 7 (Core) 9 CPE OS Name: cpe:/o:centos:centos:7 10 Kernel: Linux 3.10.0-693.el7.x86_64 11 Architecture: x86-64
二、安装ansible
安装ansible常用两种方式
1、使用yum安装
[root@ansible ~]# yum -y install ansible [root@ansible ~]# rpm -ql ansible /etc/ansible /etc/ansible/ansible.cfg /etc/ansible/hosts /etc/ansible/roles /usr/bin/ansible /usr/bin/ansible-2 /usr/bin/ansible-2.7 /usr/bin/ansible-config /usr/bin/ansible-connection /usr/bin/ansible-console /usr/bin/ansible-console-2 /usr/bin/ansible-console-2.7 /usr/bin/ansible-doc /usr/bin/ansible-doc-2 /usr/bin/ansible-doc-2.7 /usr/bin/ansible-galaxy /usr/bin/ansible-galaxy-2 ...........................
2、使用pip(python的包管理模块)安装
[root@ansible ansible]# pip install ansible [root@ansible ansible]# pip list|grep ansible ansible 2.5.3 [root@ansible ansible]# pip show ansible Name: ansible Version: 2.5.3 Summary: Radically simple IT automation Home-page: https://ansible.com/ Author: Ansible, Inc. Author-email: info@ansible.com License: GPLv3+ Location: /usr/lib/python2.7/site-packages Requires: jinja2, PyYAML, paramiko, cryptography, setuptools Required-by:
3、ansible配置
/etc/ansible /etc/ansible/ansible.cfg #ansible配置文件 /etc/ansible/hosts #ansible主机清单 /etc/ansible/roles #ansible角色的目录 /usr/bin/ansible #ansible命令工具
ansible.cfg文件
[defaults] # some basic default values... hostfile = /etc/ansible/hosts \\指定默认hosts配置的位置 # library_path = /usr/share/my_modules/ remote_tmp = $HOME/.ansible/tmp pattern = * forks = 5 poll_interval = 15 sudo_user = root \\远程sudo用户 #ask_sudo_pass = True \\每次执行ansible命令是否询问ssh密码 #ask_pass = True \\每次执行ansible命令时是否询问sudo密码 transport = smart remote_port = 22 module_lang = C gathering = implicit host_key_checking = False \\关闭第一次使用ansible连接客户端是输入命令提示 log_path = /var/log/ansible.log \\需要时可以自行添加。chown -R root:root ansible.log system_warnings = False \\关闭运行ansible时系统的提示信息,一般为提示升级 # set plugin path directories here, separate with colons action_plugins = /usr/share/ansible_plugins/action_plugins callback_plugins = /usr/share/ansible_plugins/callback_plugins connection_plugins = /usr/share/ansible_plugins/connection_plugins lookup_plugins = /usr/share/ansible_plugins/lookup_plugins vars_plugins = /usr/share/ansible_plugins/vars_plugins filter_plugins = /usr/share/ansible_plugins/filter_plugins fact_caching = memory [accelerate] accelerate_port = 5099 accelerate_timeout = 30 accelerate_connect_timeout = 5.0 # The daemon timeout is measured in minutes. This time is measured # from the last activity to the accelerate daemon. accelerate_daemon_timeout = 30
hosts主机清单
扫描二维码关注公众号,回复:
1272857 查看本文章
[root@ansible ansible]#vim /etc/ansible/hosts 主机和主机组
192.168.10.200 #定义主机 [ansible] #定义主机组 192.168.10.200 [web_server] 192.168.10.210 192.168.64.211
----------------------------------------------------------------------
端口和别名
192.168.64.211:222
ansible_server ansible_ssh_port = 3333 ansible_ssh_host = 192.168.10.200
-----------------------------------------------------------------------
指定主机范围
[servers]
192.168.10.[100:200]
使用主机变量
ansible_ssh_host #用于指定被管理的主机的真实IP ansible_ssh_port #用于指定连接到被管理主机的ssh端口号,默认是22 ansible_ssh_user #ssh连接时默认使用的用户名 ansible_ssh_pass #ssh连接时的密码 ansible_sudo_pass #使用sudo连接用户时的密码 ansible_sudo_exec #如果sudo命令不在默认路径,需要指定sudo命令路径 ansible_ssh_private_key_file #秘钥文件路径,秘钥文件如果不想使用ssh-agent管理时可以使用此选项 ansible_shell_type #目标系统的shell的类型,默认sh ansible_connection #SSH 连接的类型: local , ssh , paramiko,在 ansible 1.2 之前默认是 paramiko ,后来智能选择,优先使用基于 ControlPersist 的 ssh (支持的前提) ansible_python_interpreter #用来指定python解释器的路径,默认为/usr/bin/python 同样可以指定ruby 、perl 的路径 ansible_*_interpreter #其他解释器路径,用法与ansible_python_interpreter类似,这里"*"可以是ruby或才perl等其他语言
主机配置
[web] 192.168.10.210 ansible_ssh_user=root ansible_ssh_pass='123456' 192.168.10.210 ansible_ssh_user=ops ansible_ssh_pass='123456' 192.168.10.211 ansible_ssh_user=manager ansible_ssh_port=3055 ansible_ssh_pass='456789'