ansible的搭建

本文详细介绍了如何在CentOS7系统环境下搭建Ansible,包括控制主机和客户端主机的安装要求、安装步骤、配置过程,以及SSH密钥的设置,最终通过测试验证了Ansible的正确配置。
摘要由CSDN通过智能技术生成
  1. 安装

一台控制主机:60.60.1.31

三台客户端主机:

60.60.1.30

60.60.1.32

60.60.1.33

安装要求:

控制服务器:需要安装 Python2.6/2.7

管理服务器:需要安装 Python2.4 以上版本,若低于 Python2.5 需要安装 pythonsimplejson; 若启用了 selinux,则需要安装 libselinux-python。

本次安装基于CentOS7系统环境、Python2.7.5、ansible用户。

 

  1. yum安装

yum install epel-release

yum install ansible

 

  1. 配置控制主机

 vim /etc/ansible/hosts

[web]

60.60.1.30

[p60]

60.60.1.13

60.60.1.14

60.60.1.15

60.60.1.17

60.60.1.19

[p193]

192.168.193.10

192.168.193.11

192.168.193.12

192.168.193.13

192.168.193.16

4、配置客户端主机

   useradd  ansible 添加ansible用户

   passwd  ansible 设置密码

   cd /home/ansible

   mkdir  .ssh 建一个目录

   chown -R ansible.ansible .ssh 修改目录权限

   vim /etc/sudoers  添加一行

   ansible            ALL=(ALL)     NOPASSWD: ALL

5、配置控制主机SSH密钥

   ssh-keygen -t rsa

   将公钥拷贝到管理主机中.ssh/authorized_keys文件中,实现免密码登录远程管理主机

ssh-copy-id -i ~/.ssh/id_rsa.pub ansible@60.60.1.30

ssh-copy-id -i ~/.ssh/id_rsa.pub ansible@60.60.1.32

ssh-copy-id -i ~/.ssh/id_rsa.pub ansible@60.60.1.33

注:ssh-copy-id命令会自动将id_rsa.pub文件的内容追加到远程主机ansible用户下.ssh/authorized_keys文件中。

 

6、ansible配置

   vim /etc/ansible/ansible.cfg

  1> 禁用每次执行ansbile命令检查ssh key host

host_key_checking = False

2> 开启日志记录

log_path = /var/log/ansible.log

3> ansible连接加速配置

[accelerate]

#accelerate_port = 5099

accelerate_port = 10000

#accelerate_timeout = 30

#accelerate_connect_timeout = 5.0

 

# If set to yes, accelerate_multi_key will allow multiple

# private keys to be uploaded to it, though each user must

# have access to the system via SSH to add a new key. The default

# is "no".

accelerate_multi_key = yes

 

7、测试

 ansible all -m ping

结果如下

[ansible@60-60-1-31 ~]$ ansible all -s -m ping

[DEPRECATION WARNING]: The sudo command line option has been deprecated in favor of the "become" command line arguments. This feature will be removed

in version 2.6. Deprecation warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.

192.168.193.10 | SUCCESS => {

    "changed": false,

    "ping": "pong"

}

192.168.193.12 | SUCCESS => {

    "changed": false,

    "ping": "pong"

}

192.168.193.11 | SUCCESS => {

    "changed": false,

    "ping": "pong"

}

192.168.193.13 | SUCCESS => {

    "changed": false,

    "ping": "pong"

}

60.60.1.30 | SUCCESS => {

 

8、

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用 Ansible 搭建商城,需要先了解商城的基本架构和组成部分。一般来说,一个商城包括前端、后端、数据库、缓存、负载均衡等组件。在 Ansible 中,可以通过编写 Playbook 来自动化部署这些组件。 下面是一个简单的 Ansible Playbook 示例,可以用于搭建一个基本的商城环境: ```yaml - hosts: web_servers become: yes vars: app_name: my_shop db_name: my_shop_db db_user: my_shop_user db_password: my_shop_password redis_port: 6379 tasks: - name: Install required packages apt: name: "{{ item }}" state: present with_items: - nginx - python-pip - python-dev - build-essential - libmysqlclient-dev - redis-server - name: Configure nginx template: src: nginx.conf.j2 dest: /etc/nginx/sites-available/{{ app_name }} notify: restart nginx - name: Create MySQL database mysql_db: name: "{{ db_name }}" state: present - name: Create MySQL user mysql_user: name: "{{ db_user }}" password: "{{ db_password }}" priv: "{{ db_name }}.*:ALL" state: present - name: Configure Django settings template: src: django_settings.py.j2 dest: /opt/{{ app_name }}/{{ app_name }}/settings.py - name: Install Python requirements pip: requirements: /opt/{{ app_name }}/requirements.txt - name: Start Gunicorn command: /opt/{{ app_name }}/venv/bin/gunicorn {{ app_name }}.wsgi:application --bind 127.0.0.1:8000 --workers 3 async: true - name: Configure Redis lineinfile: path: /etc/redis/redis.conf regexp: "^port" line: "port {{ redis_port }}" notify: restart redis - hosts: db_servers become: yes vars: db_name: my_shop_db db_user: my_shop_user db_password: my_shop_password tasks: - name: Install MySQL server apt: name: mysql-server state: present - name: Configure MySQL template: src: my.cnf.j2 dest: /etc/mysql/my.cnf notify: restart mysql - name: Create MySQL database mysql_db: name: "{{ db_name }}" state: present - name: Create MySQL user mysql_user: name: "{{ db_user }}" password: "{{ db_password }}" priv: "{{ db_name }}.*:ALL" state: present ``` 在这个 Playbook 中,我们假设有两台服务器,一台用于部署 Web 服务器,另一台用于部署数据库服务器。首先,我们安装了需要的软件包,包括 Nginx、Python、MySQL 等。然后,我们配置了 Nginx 和 Django 的相关设置。接着,我们创建了 MySQL 数据库和用户,并将相关信息写入 Django 的配置文件中。最后,我们启动了 Gunicorn 应用服务器和 Redis 缓存服务器。 注意,在这个 Playbook 中,我们使用了一些模板文件,例如 nginx.conf.j2、django_settings.py.j2 和 my.cnf.j2。这些模板文件可以根据实际情况进行修改,以适应不同的商城环境。 当然,这只是一个简单的示例,实际的商城环境可能更加复杂。但是,通过 Ansible 的自动化部署能力,我们可以大大简化部署过程,减少出错的可能性,提高部署的效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值