首页> 系统技术> Linux Ansible离线部署安装

[文章]Linux Ansible离线部署安装

收藏
0 1356 0

【摘要】

Ansible 是基于 Python 研发的自动化运维工具,糅合了众多老牌运维工具的优点实现了批量操作系统配置、批量程序的部署、批量运行命令等功能,而且使用简单,仅需在管理工作站上安装 Ansible 程序配置被管控主机的 IP 信息,被管控的主机无客户端。

【正文】

一、    安装标准

对于无法联网的环境,需要采用离线的方法安装Ansible工具。本文档主要包括两方面,一是Ansible的安装,二是openpyxl库的安装。openpyxl库用来生成excel报告。

二、     安装准备

挂载安装光盘作为yum源之一;

安装文件:pip-10.0.1.tar.gz

              openpyxl-package.tar.gz

              ansible-tower-setup-bundle-3.5.0-1.el7.tar

三、     安装Ansible

1、解压ansible-tower包,我们不安装tower,只安装其中自带的ansbile engine

tar -xzf ansible-tower-setup-bundle-3.2.4-1.el7.tar.gz

 

2、配置把解压的包中的库加入yum源,同时要配置iso镜像yum

vim /etc/yum.repos.d/ansible.repo

 

[ansible_tower]

name=Ansible for Enterprise Linux 7 - $basearch

#根据实际解压路径,仅作参考

baseurl=file:///root/ansible-tower-setup-bundle-3.2.4-1.el7/bundle/repos/ansible-tower

enabled=1

gpgcheck=0

 

[ansible_tower_dependencies]

name=Extra Packages for Enterprise Linux 7 - $basearch

#根据实际解压路径,仅作参考

baseurl=file:///root/ansible-tower-setup-bundle-3.2.4-1.el7/bundle/repos/ansible-tower-dependencies

enabled=1

gpgcheck=0

 

 

3、安装

yum install ansible

4. 如果提示如下安装包缺失,通过类似方法把下列包下载后复制到ansible-tower-dependencies repo的路径下

 yum install yum-utils

 yumdownloader python-paramiko-2.1.1-9.el7.noarch

 yumdownloader python-babel-0.9.6-8.el7.noarch

 yumdownloader python-markupsafe-0.11-10.el7.x86_64

 yumdownloader python-jinja2-2.7.2-3.el7_6.noarch

 

5.  进入ansible-tower-setup-bundle-3.2.4-1.el7目录,执行下列命令

  yum clean all

   ./setup.sh

 

四、     安装openpyxl

1.     解压pip-10.0.1.tar.gz后进入pip目录

        python setup.py install

        pip list

   2.   解压openpyxl-package.tar.gz 安装excel支持

     tar -xzf openpyxl-package.tar.gz

     pip install --no-index --find-links=openpyxl-package openpyxl

 

五、     Hello world 配置

 

 

1.    检查 ansible 是否安装好

        ansible -v

   2. 添加一个host,可以是本机器

         修改/etc/ansible/hosts,添加如下

[test]

172.16.231.160  ansible_ssh_user=root ansible_ssh_pass=abcd

       3. 关闭restrit host key

           修改 /etc/ansible/ansible.cfg中下列行, 把#好取消

           #host_key_checking = False

       4. 测试一个ping

         ansible test -m ping -k all

 

六、     写一个playbook

1.     任意路径下创建hello.yml 如下, 注意层级结构和第一行的“---

---

- name: Hello World

  hosts: all

  tasks:     

  - name: get hostname

    shell: echo "{{ansible_fqdn}}"

 

  - name: get default ipv4

    command: echo "{{ansible_default_ipv4.address}}"

    

2.     执行如下

$ ansible-playbook hello.yml

PLAY [Hello World] ***********************************************************

TASK [Gathering Facts] ***********************************************************

ok: [172.16.231.160]

TASK [get hostname] ***********************************************************

changed: [172.16.231.160]

TASK [get default ipv4] ***********************************************************

changed: [172.16.231.160]

PLAY RECAP ***********************************************************

172.16.231.160             : ok=3    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0  

七、    帮助网站:


 

https://www.ansible.com/

https://github.com/ansible/ansible

        https://docs.ansible.com/

 

系统技术
最近热帖
{{item.Title}} {{item.ViewCount}}
近期热议
{{item.Title}} {{item.PostCount}}