ansible的安装和入门(4)

ansible的安装和入门

ansible的安装

epel源的安装

yum install ansible

编译安装

 yum -y install python-jinja2 PyYAML python-paramiko 
python-babel    
 python-crypto   
  tar xf ansible-1.5.4.tar.gz 
    cd ansible-1.5.4    
 python setup.py build  
   python setup.py install     
mkdir /etc/ansible   
  cp -r examples/* /etc/ansible 

Git方式

  git clone git://github.com/ansible/ansible.git --recursive   
  cd ./ansible   
  source ./hacking/env-setup

pip安装

 pip是安装Python包的管理器,类似yum    
 yum install python-pip python-devel    
 yum install gcc glibc-devel zibl-devel rpm-bulid openssl-devel  
   pip install --upgrade pip    
 pip install ansible --upgrade 确认安装:
     ansible --version

需要注意的是,这些方法在centos8可能不适用,因为库的相关的版本的原因所以不适用,
本人尝试之后可行的方法为

curl -o /etc/yum.repos.d/CentOS-Base.repo [https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo](https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo) 先配置库
运行 yum makecache 生成缓存
yum install -y [https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm](https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm)安装epel库
运行 yum makecache 生成缓存
sed -i's|^#baseurl=[https://download.example/pub/epel|baseurl=https://mirrors.aliyun.com/epel-archive|'](https://download.example/pub/epel|baseurl=https://mirrors.aliyun.com/epel-archive|') /etc/yum.repos.d/epel*
sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*	
修改一下变成epel-archive|老存储库

Ansible相关文件

配置文件

/etc/ansible/ansible.cfg 主配置文件,配置ansible工作特性(一般无需修改)
/etc/ansible/hosts 主机清单(将被管理的主机放到此文件)
/etc/ansible/roles/ 存放角色的目录

程序

/usr/bin/ansible 主程序,临时命令执行工具
/usr/bin/ansible-doc 查看配置文档,模块功能查看工具
/usr/bin/ansible-galaxy 下载/上传优秀代码或Roles模块的官网平台
/usr/bin/ansible-playbook 定制自动化任务,编排剧本工具
/usr/bin/ansible-pull 远程执行命令的工具
/usr/bin/ansible-vault 文件加密工具
/usr/bin/ansible-console 基于Console界面与用户交互的执行工具

主机清单inventory

Inventory 主机清单
1> ansible的主要功用在于批量主机操作,为了便捷地使用其中的部分主机,可以在inventory file中将其分组命名
2> 默认的inventory file为/etc/ansible/hosts
3> inventory file可以有多个,且也可以通过Dynamic Inventory来动态生成
/etc/ansible/hosts文件格式
inventory文件遵循INI文件风格,中括号中的字符为组名。
可以将同一个主机同时归并到多个不同的组中;
此外,当如若目标主机使用了非默认的SSH端口,还可以在主机名称之后使用冒号加端口号来标明
ntp.magedu.com 不分组,直接加
[webservers] webservers组
www1.magedu.com:2222 可以指定端口
www2.magedu.com
[dbservers]
db1.magedu.com
db2.magedu.com
db3.magedu.com
如果主机名称遵循相似的命名模式,还可以使用列表的方式标识各主机 示例:
[websrvs]
www[1:100].example.com ip: 1-100
[dbsrvs]
db-[a:f].example.com dba-dbff

配置文件

Ansible 配置文件/etc/ansible/ansible.cfg (一般保持默认)
vim /etc/ansible/ansible.cfg

[defaults] 
inventory     = /etc/ansible/hosts      # 主机列表配置文件 
library       = /usr/share/my_modules/  # 库文件存放目录 #remote_tmp    = $HOME/.ansible/tmp      # 临时py命令文件存放在远程主机目录 
local_tmp     = $HOME/.ansible/tmp      # 本机的临时命令执行目录   
forks         = 5                       # 默认并发数,同时可以执行5次 
sudo_user     = root                    # 默认sudo 用户 
ask_sudo_pass = True                    # 每次执行ansible命令是否询问ssh密码 
ask_pass      = True                    # 每次执行ansible命令是否询问ssh口令 
remote_port   = 22                      # 远程主机的端口号(默认22) 

建议优化项:  host_key_checking = False               # 检查对应服务器的host_key,建议取消注释 log_path=/var/log/ansible.log           # 日志文件,建议取消注释 
module_name   = command                 # 默认模块

posted @ 2022-11-22 13:57  yutoujun  阅读(22)  评论(0编辑  收藏  举报