跳转至

2. 安装 Ansible

学会一个软件的第一件事,就是要在各种环境上安装这个软件,安装好,我们才能进入下一步,跟着我一起来安装 ansible

对管理主机的要求

目前,只要机器上安装了 Python 2(版本2.6或2.7)或Python 3(版本3.5及更高版本)都可以运行Ansible (windows系统不可以做管理主机) 管理主机的系统可以是 Red Hat, Debian, CentOS, macOS, BSD的各种版本.

对节点主机的要求

通常我们使用 ssh 与节点通信,默认使用 sftp. 如果 sftp 不可用,可在 ansible.cfg 配置文件中配置成 scp 的方式. 在节点上也需要安装Python 2(2.6或更高版本)或Python 3(3.5或更高版本)

如果节点启用了selinux, 在使用copy/file/template时需要安装 libselinux-python 包。

如果想通过ansible给节点主机安装python模块,可以使用raw模块,命令如:

ansible myhost --become -m raw -a "yum install -y python2"
raw 模块 可以原生执行shell命令

在管理节点上安装ansible

大家选择下面的一种方式进行安装 ansible

sed -e 's!^#baseurl=!baseurl=!g' \
       -e  's!^mirrorlist=!#mirrorlist=!g' \
       -e 's!mirror.centos.org!mirrors.aliyun.com!g' \
       -i  /etc/yum.repos.d/CentOS-Base.repo

yum install -y epel-release

sed -e 's!^mirrorlist=!#mirrorlist=!g' \
    -e 's!^metalink=!#metalink=!g' \
    -e 's!^#baseurl=!baseurl=!g' \
    -e 's!//download\.fedoraproject\.org/pub!//mirrors.aliyun.com!g' \
    -e 's!http://mirrors\.aliyun!https://mirrors.aliyun!g' \
    -i /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel-testing.repo

yum install -y ansible
$ sudo apt update
$ sudo apt install software-properties-common
$ sudo apt-add-repository --yes --update ppa:ansible/ansible
$ sudo apt install ansible
deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
$ sudo apt update
$ sudo apt install ansible
$ sudo pkg install py27-ansible
# or
$ sudo pkg install py36-ansible
$ sudo dnf install ansible
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
sudo CFLAGS=-Qunused-arguments CPPFLAGS=-Qunused-arguments pip install ansible -i https://mirrors.ustc.edu.cn/pypi/web/simple
# 通过此方式安装的没有生成/etc/ansible文件,可以手动生成,配置文件示例到https://github.com/ansible/ansible/tree/devel/examples
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
pip install ansible -i https://mirrors.ustc.edu.cn/pypi/web/simple

# 通过此方式安装的没有生成/etc/ansible文件,可以手动生成,配置文件示例到https://github.com/ansible/ansible/tree/devel/examples
yum install -y python36 python36-tools
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3.6 get-pip.py 
pip3.6 install ansible -i https://mirrors.ustc.edu.cn/pypi/web/simple
# 通过此方式安装的没有生成/etc/ansible文件,可以手动生成,配置文件示例到https://github.com/ansible/ansible/tree/devel/examples
yum install -y  python-setuptools
easy_install pip
wget https://github.com/ansible/ansible/archive/v2.9.6.tar.gz
tar zxf v2.9.6.tar.gz
cd ./ansible-2.9.6
pip install -r ./requirements.txt
python setup.py install
mkdir /etc/ansible/
cp examples/{ansible.cfg,hosts} /etc/ansible/
# 以目标主机centos7为测试
# 1. 下载ansible及依赖系统包
curl -sSL https://cdn.jsdelivr.net/gh/lework/script/shell/get_packages.sh | bash -s - centos7 ansible
# 2. 下载好的离线包在当前目录的package_centos7_ansible
ls package_centos7_ansible
# 3. 将目录拷贝到目标主机,在当前目录安装
yum localinstall *.rpm

bash命令行自动补全

在Ansible 2.9之后,就支持了命令行参数补齐功能

yum install epel-release
yum install python-argcomplete
$ sudo apt install python-argcomplete
pip install argcomplete

将补全加入环境变量

activate-global-python-argcomplete
source /etc/profile

在bash 小于4.2 时,使用下列命令注册

$ eval $(register-python-argcomplete ansible)
$ eval $(register-python-argcomplete ansible-config)
$ eval $(register-python-argcomplete ansible-console)
$ eval $(register-python-argcomplete ansible-doc)
$ eval $(register-python-argcomplete ansible-galaxy)
$ eval $(register-python-argcomplete ansible-inventory)
$ eval $(register-python-argcomplete ansible-playbook)
$ eval $(register-python-argcomplete ansible-pull)
$ eval $(register-python-argcomplete ansible-vault)
source /etc/profile

最后更新: 2020-12-03 08:40:01

评论