编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

自动化运维工具之Ansible-架构及初步配置

wxchong 2024-07-02 03:08:38 开源技术 13 ℃ 0 评论

1. 自动化运维工具的分类

  • os provisioning

cobbler(补鞋匠):快速建立 Linux 网络安装环境

  • os config(配置,部署,多级调用)

ansible:2012年开源,轻量级,无需代理客户端agent。

Red Hat Ansible Tower :可视化环境

2. Ansible的架构

  • ansible :核心
  • host inventory(清单): 注册可管理的主机host,包括IP地址,端口,账号,密码等,同时可对主机基于角色进行分组。
  • playbooks:剧本,使用yaml格式进行创建,可以多次调用,结果幂等,并不会多次创建
  • core modules: 核心日常模块。可以创建任务task。
  • custom modules: 自定义模块。可任何语言编写。
  • plugins:
  • connection plugins: 连接插件。通常使用了python自带的jinjia2,PyYAML 等类库。
  • host:

3.Ansible 的安装部署

国内加速站点:https://www.newbe.pro/Mirrors/Mirrors-Ansible/

本文是在内网环境下的离线安装操作过程,初始环境为redhat 6.4,python 2.6.6,ansible 1.7.2. 具体过程如下:

  • 下载所需的软件包
  • python2.7 安装
# tar xvzf Python-2.7.8.tgz
# cd Python-2.7.8
# ./configure --prefix=/usr/local
# make --jobs=`grep processor /proc/cpuinfo | wc -l`
# make install
## 将python头文件拷贝到标准目录,以避免编译ansible时,找不到所需的头文件
# cd /usr/local/include/python2.7
# cp -a ./* /usr/local/include/
## 备份旧版本的python,并符号链接新版本的python
# cd /usr/bin
# mv python python2.6
# ln -s /usr/local/bin/python .
## 修改yum脚本,使其指向旧版本的python,已避免其无法运行
# vim /usr/bin/yum
#!/usr/bin/python  更改为  
#!/usr/bin/python2.6
  • setuptools模块安装
# tar xvzf setuptools-7.0.tar.gz
# cd setuptools-7.0
# python setup.py install
  • pycrypto模块安装
# tar xvzf pycrypto-2.6.1.tar.gz
# cd pycrypto-2.6.1
# python setup.py install
  • PyYAML模块安装
# tar xvzf yaml-0.1.5.tar.gz
# cd yaml-0.1.5
# ./configure --prefix=/usr/local
# make --jobs=`grep processor /proc/cpuinfo | wc -l`
# make install
---------------------
# tar xvzf PyYAML-3.11.tar.gz
# cd PyYAML-3.11
# python setup.py install
  • Jinja2模块安装
# tar xvzf MarkupSafe-0.9.3.tar.gz
# cd MarkupSafe-0.9.3
# python setup.py install
-------
# tar xvzf Jinja2-2.7.3.tar.gz 
# cd Jinja2-2.7.3
# python setup.py install
  • paramiko模块安装
# tar xvzf ecdsa-0.11.tar.gz
# cd ecdsa-0.11
# python setup.py install
--------------------------
# tar xvzf paramiko-1.15.1.tar.gz
# cd paramiko-1.15.1
# python setup.py install
  • simplejson模块安装
# tar xvzf simplejson-3.6.5.tar.g
# cd simplejson-3.6.5
# python setup.py install
  • ansible安装
# tar xvzf ansible-1.7.2.tar.gz
# cd ansible-1.7.2
# python setup.py install
  • ansible 配置
# 生成rsa格式密钥(ansible主机上)
ssh-keygen -t rsa
# 把公钥写入到远端主机(被管理机)的~/.ssh/authorized_keys,命令如下:
ssh-copy-id username@xxxx(远程主机ip)
# 复制ansible 安装包中的配置文件和主机文件到/etc/ansible 目录下
mkdir -p /etc/ansible
cp hosts /etc/ansible/hosts
cp ansible.cfg /etc/ansible/
# 管理机设置默认远程用户
vim /etc/ansible/ansible.cfg
remote_user = username
# 添加hosts主机清单
vim /etc/ansible/hosts
  • ansible 简单验证
ansible --version
ssh hdm@xxxx.20.225.xxx 'date'
ansible xxx.20.225.xxx -m shell -a 'date;df -h'
ansible xxx.20.225.xxx -m shell -a 'hostname' -o

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表