Ansible安装全攻略:CentOS、Ubuntu与源码方法

需积分: 9 0 下载量 121 浏览量 更新于2024-09-05 收藏 899KB DOC 举报
"该文档是关于使用Ansible在CentOS和Ubuntu系统上进行安装的详细指南,包括了源码安装的步骤以及配置密钥免密传输的方法。" Ansible是一款强大的自动化工具,常用于配置管理、应用部署和任务执行。在Linux环境中,Ansible提供了简单易用的方式来管理和维护多台服务器。以下是基于提供的信息,对Ansible安装及其相关知识点的详细说明: 1. 安装Ansible: - 在CentOS系统中,首先需要确保系统已更新到最新状态,然后可以通过`yum install epel-release`来安装EPEL仓库,接着使用`yum install ansible`命令来安装Ansible。 - 对于Ubuntu,需要先安装`software-properties-common`,添加Ansible的PPA仓库,通过`apt-get update`更新软件列表,最后运行`apt-get install ansible`进行安装。 2. 阿里云源: 如果本地的 yum 或 apt 软件源中没有Ansible的安装包,可以使用阿里云的镜像源来加速安装,其链接为:https://opsx.alibaba.com/mirroryum。 3. 源码安装: - 源码安装要求Python版本至少为2.6,同时需要一些依赖库,如paramiko、PyYAML、Jinja2、httplib2、simplejson和pycrypto。这些库可以通过`pip`或`easy_install`安装。 - 下载Ansible的最新安装包,可以从官方地址https://releases.ansible.com/ansible/获取,然后使用`tar -zxvf ansible`命令解压。 - 解压后,遵循官方文档的指导进行编译和安装。 4. 配置文件目录: - Ansible的配置文件位于`/etc/ansible/`,这是放置`hosts`文件和其他配置文件的地方。 - 执行文件通常位于`/usr/bin/`,包括`ansible`和`ansible-playbook`等命令行工具。 - Lib库依赖于`/usr/lib/pythonX.X/site-packages/ansible/`,这里是Ansible的Python模块所在位置。 - 文档目录`/usr/share/doc/ansible-X.X.X/`包含了帮助文档。 - Man手册页位于`/usr/share/man/man1/`,供用户查阅命令的使用方法。 5. 密钥对认证: - 为了实现无密码SSH连接,可以使用`ssh-keygen`生成RSA密钥对,如`ssh-keygen -t rsa -f ~/.ssh/id_rsa -C "ansible_test"`。 - 接着使用`ssh-copy-id`命令将公钥拷贝到目标主机,例如`ssh-copy-id -i ~/.ssh/id_rsa.pub -p 22 root@192.168.0.1`,其中`192.168.0.1`为远程主机的IP地址。 6. 配置文件`hosts`: - Ansible的`hosts`文件位于`/etc/ansible/hosts`,在这个文件中定义了主机组和主机列表,如示例中的`[all]`、`[node1]`和`[node2]`。 7. 依赖模块: - Ansible运行时依赖于一些Python模块,如paramiko(SSH连接)、PyYAML(解析YAML)、Jinja2(模板引擎)等。在源码安装时,需要确保这些模块已经安装。 通过以上步骤,你可以成功地在CentOS和Ubuntu系统上安装Ansible,并配置无密码登录,开始使用Ansible进行自动化运维。记住,对于大规模环境,良好的组织和规划(如主机分组)在管理过程中至关重要。

[root@zabbix roles]# ansible-doc Traceback (most recent call last): File "/usr/bin/ansible-doc", line 62, in <module> import ansible.constants as C File "/usr/lib/python2.7/site-packages/ansible/constants.py", line 175, in <module> config = ConfigManager() File "/usr/lib/python2.7/site-packages/ansible/config/manager.py", line 283, in __init__ self._config_file = find_ini_config_file(self.WARNINGS) File "/usr/lib/python2.7/site-packages/ansible/config/manager.py", line 240, in find_ini_config_file potential_paths.append(unfrackpath("~/.ansible.cfg", follow=False)) File "/usr/lib/python2.7/site-packages/ansible/utils/path.py", line 55, in unfrackpath b_basedir = to_bytes(os.getcwd(), errors='surrogate_or_strict') OSError: [Errno 2] No such file or directory [root@zabbix roles]# ansible Traceback (most recent call last): File "/usr/bin/ansible", line 62, in <module> import ansible.constants as C File "/usr/lib/python2.7/site-packages/ansible/constants.py", line 175, in <module> config = ConfigManager() File "/usr/lib/python2.7/site-packages/ansible/config/manager.py", line 283, in __init__ self._config_file = find_ini_config_file(self.WARNINGS) File "/usr/lib/python2.7/site-packages/ansible/config/manager.py", line 240, in find_ini_config_file potential_paths.append(unfrackpath("~/.ansible.cfg", follow=False)) File "/usr/lib/python2.7/site-packages/ansible/utils/path.py", line 55, in unfrackpath b_basedir = to_bytes(os.getcwd(), errors='surrogate_or_strict') OSError: [Errno 2] No such file or directory

2023-07-25 上传

创建2台系统为centos7.5的云主机,其中一台作为Ansible的母机并命名为ansible,另一台云主机命名为node,通过http服务中的ansible.tar.gz软件包在ansible节点安装Ansible服务;并用这台母机,补全Ansible脚本(在HTTP中下载install_zabbix.tar.gz并解压到/root目录下),补全Ansible脚本使得执行install_zabbix.yaml可以在node节点上完成zabbix服务的安装。 ftp.repo: [zabbix] name=zabbix baseurl=file:///opt/Zabbix enabled=1 gpgcheck=0 [ftp_centos] name=ftp_centos baseurl=ftp://controller/centos enabled=1 gpgcheck=0 [root@ansible ~]# cat install_zabbix.yaml - hosts: zabbix remote_user: root tasks: - name: rm repo shell: rm -f /etc/yum.repos.d/* - name: cp repo copy: src=/etc/yum.repos.d/ftp.repo dest=/etc/yum.repos.d/ - name: cp zabbix copy: src=/opt/zabbix dest=/opt/ - name: yum install mariadb zabbix httpd yum: name=mariadb,mariadb-server,zabbix-server-mysql,zabbix-web-mysql,zabbix-agent,trousers state=present - name: start httpd service: name=httpd state=started enabled=yes - name: start mariadb service: name=mariadb state=started enabled=yes -name: mysql passwd shell: mysqladmin -u root password 123456 - name: grant shell: mysql -u root -p123456 -e "create database zabbix character set utf8 collate utf8_bin;" && mysql -u root -p123456 -e "grant all privileges on zabbix.* to zabbix@'%' identified by 'zabbix';" && mysql -u root -p123456 -e "grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';" - name: sql shell: zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz |mysql -u zabbix -pzabbix zabbix - name: cp config copy: src=/etc/zabbix/zabbix_server.conf dest=/etc/zabbix/ - name: start zabbix service: name=zabbix-server state=started

2023-06-10 上传