Ansible部署及使用
2014-06-12 10:46
423 查看
一.什么是ansible
什么是ansible?官方的title是“Ansibleis Simple IT Automation”―>简单的自动化IT工具。ansible功能:自动化部署APP;自动化管理配置项;自动化的持续交付;自动化的(AWS)云服务管理。其本质就是在一个台或者几台服务器上,批量的执行命令。 fabric和ansible有什么差别呢?简单来说fabric像是一个工具箱,提供了很多好用的工具,用来在Remote执行命令,而ansible则是提供了一套简单的流程,你要按照它的流程来做,就能轻松完成任务。当然,它们之间也是有共同点的――都是基于paramiko 开发的。paramiko是什么呢?它是一个纯Python实现的ssh协议库。因此fabric和ansible还有一个共同点就是不需要在远程主机上安装client/agent,因为它们是基于ssh来和远程主机通讯的。Ansible的执行过程如下图所示,暖色调带便已经模块化。
二.Ansible的安装
配置好yum,直接yum -yinstall ansible即可。
三.Ansible的具体使用
Ansible Server:10.0.0.122
节点信息:
建立完信任关系后,测试下各节点与Server的连通性:
ansible-shell内置的命令主要有四个:
cd : 切换到指定的组/表达式筛选的机器集合上
list: 显示目前的机器集合,list groups 可以列出所有的组(对我们可能没啥用)
serial:运行时的并发度,默认是20
help: 顾名思义,他能生成简单的模块帮助信息,方便即时查询
什么是ansible?官方的title是“Ansibleis Simple IT Automation”―>简单的自动化IT工具。ansible功能:自动化部署APP;自动化管理配置项;自动化的持续交付;自动化的(AWS)云服务管理。其本质就是在一个台或者几台服务器上,批量的执行命令。 fabric和ansible有什么差别呢?简单来说fabric像是一个工具箱,提供了很多好用的工具,用来在Remote执行命令,而ansible则是提供了一套简单的流程,你要按照它的流程来做,就能轻松完成任务。当然,它们之间也是有共同点的――都是基于paramiko 开发的。paramiko是什么呢?它是一个纯Python实现的ssh协议库。因此fabric和ansible还有一个共同点就是不需要在远程主机上安装client/agent,因为它们是基于ssh来和远程主机通讯的。Ansible的执行过程如下图所示,暖色调带便已经模块化。
二.Ansible的安装
配置好yum,直接yum -yinstall ansible即可。
yum -y install ansible安装完成后会在/etc 下生成两个文件:ansible的配置文件ansible.cfg和定义被管理节点的hosts.
三.Ansible的具体使用
Ansible Server:10.0.0.122
节点信息:
cat /etc/ansible/hosts 10.0.0.128 #nginx01 10.0.0.129 #nginx02 10.0.0.130 #nginx03建立Server及各节点的信任关系:
ssh-keygen -t rsa -P '' -f .ssh/id_rsa ssh-copy-id -i .ssh/id_rsa.pub 10.0.0.128--10.0.0.130ansible命令的用法:
建立完信任关系后,测试下各节点与Server的连通性:
[root@cobbler ~]# ansible all -m ping #all表示所有节点,-m指定模块 默认为command,ping指定动作 10.0.0.129 | success >> { "changed": false, "ping": "pong" } 10.0.0.130 | success >> { "changed": false, "ping": "pong" } 10.0.0.128 | success >> { "changed": false, "ping": "pong" }ansible批量执行命令示例:
[root@cobbler ~]# ansible all -a 'uptime' #all所有节点, -a用于指定命令,‘uptime’执行的命令,如果命令有参数一定要用引号;ansible默认使用command模块,所以可以不用指定。 10.0.0.130 | success | rc=0 >> 11:31:50 up 2:01, 1 user, load average: 0.00, 0.00, 0.00 10.0.0.129 | success | rc=0 >> 11:31:50 up 2:02, 1 user, load average: 0.00, 0.00, 0.00 10.0.0.128 | success | rc=0 >> 11:31:50 up 2:05, 1 user, load average: 0.00, 0.00, 0.00 [root@cobbler ~]# ansible-doc -l #查看ansible的所有模块 acl Sets and retrieves file ACL information. add_host add a host (and alternatively a group) to the ansible-playbo airbrake_deployment Notify airbrake about app deployments apt Manages apt-packages [root@cobbler ~]# ansible-doc yum #查看指定模块的文档 > YUM Installs, upgrade, removes, and lists packages and groups with the `yum' package manager. [root@cobbler ~]# ansible all -m yum -a "name=httpd state=present" #用yum模块给各节点安装httpd。name指定安装包名,state指定动作:安装可以用present和latest,卸载使用absent。 10.0.0.128 | success >> { "changed": false, "msg": "", "rc": 0, "results": [ "httpd-2.2.15-30.el6.centos.x86_64 providing httpd is already installed" ] } 10.0.0.130 | success >> { "changed": false, "msg": "", "rc": 0, "results": [ "httpd-2.2.15-30.el6.centos.x86_64 providing httpd is already installed" ] } 10.0.0.129 | success >> { "changed": false, "msg": "", "rc": 0, "results": [ "httpd-2.2.15-30.el6.centos.x86_64 providing httpd is already installed" ] }ansible执行shell比较麻烦,建议安装ansible-shell
ansible-shell内置的命令主要有四个:
cd : 切换到指定的组/表达式筛选的机器集合上
list: 显示目前的机器集合,list groups 可以列出所有的组(对我们可能没啥用)
serial:运行时的并发度,默认是20
help: 顾名思义,他能生成简单的模块帮助信息,方便即时查询
yum -y install git git clone https://github.com/dominis/ansible-shell.git yum -y install python-pip pip install -e ./ansible-shell
[root@cobbler ~]# ansible-shell Welcome to the ansible-shell. Type help or ? to list commands. root@ (0)[s:2]$ cd 10.0.0.128 #cd到指定host。 root@10.0.0.128 (1)[s:2]$ ls #list出了10.0.0.128这个主机上/root下的文件 =============== 10.0.0.128 ================ anaconda-ks.cfg install.log install.log.syslog nginx-1.4.7 nginx-1.4.7.tar.gz nginx_install.sh其他功能还在摸索中,用到后再做补充。
相关文章推荐
- 使用ansible部署安装corosync+pacemaker
- 自动化运维工具Ansible部署详解与基本使用
- 使用 Ansible 安装部署 TiDB
- ansible服务部署与使用
- 使用Ansible部署etcd 3.2高可用集群
- 使用 Ansible 部署无服务(serverless)应用
- ansible服务部署与使用
- 使用ansible自动化部署nfs+rsync+sersync+web01自动化挂载
- 使用ansible结合keepalived高可用,nginx反向代理部署小型企业环境
- 使用Ansible部署LAMP环境
- 使用原子主机(Atomic Host)、Ansible 和 Cockpit 部署容器
- Ansible自动化运维工具部署及使用 推荐
- 使用原子主机(Atomic_Host)、Ansible_和_Cockpit_部署容器
- 在Ubuntu 14.04上使用Ansible部署PHP应用
- ansible中角色和模板使用及部署lamp平台
- 使用Ansible部署LAMP环境
- 使用原子主机、Ansible 和 Cockpit 部署容器
- 使用Ansible部署Nginx
- java分布式系统部署学习(八)ansible-playbook 简单使用