Ansible 是一个 Python 写的自动化工具,这个工具可以实现集群自动化管理,然后进行一些常用的运维操作。现在的公司很多都是使用的集群部署服务,少则几台虚拟机,多则几百上千台虚拟机,有的时候需要对一个集群或者多个集群集中进行运维操作,那么这个时候,Ansible 就可以实现批量操作了。
1.安装ansible
ansible 的管理机必须安装 python2,但是有个非常重要的点,那就是 Windows 不可以当做管理机,主机系统可以是 Red Hat, Debian, CentOS, OS X, BSD 的各种版本。
使用pip安装
ansible 它是一个 python 写的包,直接当做一个普通的第三方库来安装,直接运行命令安装即可:
sudo pip install ansible
使用yum或apt-get
ansible 也可以使用系统的包管理工具来安装,比如 CentOS 的 yum 命令:
sudo yum install ansible
使用 apt-get
sudo apt-get install software-properties-common
sudo apt-add-repository ppa:ansible/ansible
sudo apt-get update
sudo apt-get install ansible
2.ansible基本用法
使用anisble-playbok
ansible-playbook 也称之为剧本,是 ansible 把一系列自动化操作按照一定的执行顺序和执行逻辑进行组合起来的模块,使用这个模块可以更加方便地管理 ansible 任务。
ansible-playbook 命令可以作为运行一个 ansible 任务的开始,具体如何使用,可以查看帮助,下面这条是一般启动命令:
ansible-playbook docker.yml -i hosts -u alex -k -K
#这个命令可以指定一个操作的用户,后续需要输入用户的密码和sudo命令。
因为 ansible 有很多非常有用的模块和命令可以使用,全部记住不现实,😄,但是 ansible 有一个非常有用的命令使用查询文档,直接使用命令就可以查看某个模块的用法,还有例子:
#列出所有模块
ansible-doc -l
#列出yum模块的使用方式
ansible-doc yum
ansible安装docker
- name: Install Docker using Ansible
hosts: your_target_hosts
become: true
tasks:
- name: Update apt package cache
apt:
update_cache: yes
when: ansible_pkg_mgr == 'apt'
- name: Install required system packages
package:
name: "{{ item }}"
state: present
with_items:
- apt-transport-https
- ca-certificates
- curl
- gnupg
- lsb-release
when: ansible_pkg_mgr == 'apt'
- name: Add Docker's official GPG key
apt_key:
url: https://download.docker.com/linux/ubuntu/gpg
state: present
when: ansible_pkg_mgr == 'apt'
- name: Add Docker repository
apt_repository:
repo: deb [arch=amd64] https://download.docker.com/linux/ubuntu {{ ansible_lsb.id | lower }} stable
state: present
when: ansible_pkg_mgr == 'apt'
- name: Update apt and install Docker
apt:
name: docker-ce
state: present
when: ansible_pkg_mgr == 'apt'
- name: Start and enable Docker service
service:
name: docker
state: started
enabled: yes
上面的剧本保存为
install_docker.yaml文件,然后通过以下命令运行该剧本:
sudo ansible-playbook -i inventory_fileinstall_docker.yaml
将
your_target_hosts替换为你的目标主机名或 IP 地址,并根据你的实际情况调整适当的参数。这个剧本假定你在 Ubuntu 系统上安装 Docker,如果你的目标主机是其他系统,请相应地修改适配。
结果显示