Char02 Ansible 安装与配置

Char02 Ansible 安装与配置

Ansible 配置管理系统由 控制主机和被管理节点组成

控制主机,目前不支持windows OS

1 Install 

1.1 源码安装

   Tar包安装方式

   制作rpm包安装方式

1.2 包管理安装

  2 Ubuntu :

sudo apt-gett install software-properties-common
sudo apt-add-repository ppa:ansible/ansible
sudo apt-get udpate
sudo apt-get install ansible

  3 Homebrew ( Mac OSX )安装方式

  4 PIP

2.3 配置运行环境

1 ANSIBLE_CONFIG

  ./ansible.cfg -> ~/.ansible.cfg -> /etc/ansible.cfg   

2 使用公钥认证

2.3.3 配置linux 主机ssh 无密码访问

  step 1 : ansbie control 上创建秘钥: 

root@Ly:~# ssh-keygen -t rsa -C "YL@XXX"
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
2a:c8:b2:7a:13:94:81:a9:e4:fe:5f:ac:7c:4b:b6:24 YL@XXX
The key's randomart image is:
+--[ RSA 2048]----+
| o               |
|o..              |
|+  o             |
|..o              |
|..      S        |
| o..  ..         |
|. +..E.*         |
| oo...B..        |
|+. ..+.o.        |
+-----------------+

  setp 2 : 下发密钥:

    控制主机将公钥id_rsa.pub下发到被管理节点上用户的.ssh目录

# ssh-copy-id -i ~/.ssh/id_rsa.pub jenkins@TestSlave5
The authenticity of host 'testslave5 (172.17.150.21)' can't be established.
ECDSA key fingerprint is 5e:a9:90:86:c8:73:4f:05:e1:7d:05:d3:1c:53:b0:d9.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
jenkins@testslave5's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'jenkins@TestSlave5'"
and check to make sure that only the key(s) you wanted were added.

  

2.4 Ansible 测试

2.4.1 主机连通性测试

  step 1 : 修改主机与组配置 , ansible_hosts 格式为ini

# cat ansible_hosts 
127.0.0.1
[TestSlavesMonkey]
TestSlave[5:6]

  

     step 2 : 

# ansible -i ansible_hosts  TestSlavesMonkey -m ping -u jenkins 
TestSlave6 | success >> {
    "changed": false,
    "ping": "pong"
}

TestSlave5 | success >> {
    "changed": false,
    "ping": "pong"
}

  

2.4.2 在被管理节点上批量执行

# ansible -i ansible_hosts  TestSlavesMonkey -u jenkins -m shell -a 'echo hello ansible' 
TestSlave5 | success | rc=0 >>
hello ansible

TestSlave6 | success | rc=0 >>
hello ansible

2.5 获取帮助信息

# ansible-doc -h
Usage: ansible-doc [options] [module...]

Show Ansible module documentation

Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -M MODULE_PATH, --module-path=MODULE_PATH
                        Ansible modules/ directory
  -l, --list            List available modules
  -s, --snippet         Show playbook snippet for specified module(s)
  -v                    Show version number and exit

  

ansible-doc -l 列出了Ansible 系统支持的模块,Ansible 安装后能够列出259个模块

原文地址:https://www.cnblogs.com/zsr0401/p/6293226.html