ansible其他系统命令

其实除了我们常用的ansible、ansible-playbook等命令外,还有其他能够提升我们工作效率的系统命令

  • ansible-galaxy

 

ansible-galaxy     
    连接https://galaxy.ansible.com/  下载相应的roles
    https://galaxy.ansible.com/  这上面有很多的ansible爱好者和好心人上传的优秀的roles,我们只需要下载就能使用
	列出所有已安装的galaxy
	  ansible-galaxy list
	安装galaxy
      ansible-galaxy install geerlingguy.nfs
	删除galaxy
	  ansible-galaxy remove geerlingguy.nfs

ansible其他系统命令_第1张图片

ansible其他系统命令_第2张图片

显示为:

[root@ceshi ~]# ansible-galaxy install geerlingguy.nfs
- downloading role 'nfs', owned by geerlingguy
- downloading role from https://github.com/geerlingguy/ansible-role-nfs/archive/1.5.0.tar.gz
- extracting geerlingguy.nfs to /root/.ansible/roles/geerlingguy.nfs      ####下载到本地的位置
- geerlingguy.nfs (1.5.0) was installed successfully
[root@ceshi ~]# tree .ansible/roles/
.ansible/roles/
└── geerlingguy.nfs
    ├── defaults
    │   └── main.yml
    ├── handlers
    │   └── main.yml
    ├── LICENSE
    ├── meta
    │   └── main.yml
    ├── molecule
    │   └── default
    │       ├── molecule.yml
    │       ├── playbook.yml
    │       └── tests
    │           └── test_default.py
    ├── README.md
    ├── tasks
    │   ├── main.yml
    │   ├── setup-Debian.yml
    │   └── setup-RedHat.yml
    ├── templates
    │   └── exports.j2
    └── vars
        ├── Debian.yml
        ├── Fedora.yml
        ├── RedHat-7.yml
        └── RedHat.yml

10 directories, 16 files
[root@ceshi ~]# ansible-galaxy list geerlingguy.nfs
- geerlingguy.nfs, 1.5.0     ###具体的版本信息



#####所以我们如果想要快速的写一个完成任务的roles,可以选择先ansible-galaxy下载一个roles,然后在下载的基础上面进行我们所需要的修改


  • ansible-pull
ansible-pull
    远端拉取命令或者剧本,效率无限提升,对运维要求较高
    该指令的使用涉及Ansible的另一种工作模式:pull模式(Ansible默认使用push模式)。这和通常使用的push模式工作机理刚好相反,其适用于以下场景:
	1、你有数量巨大的机器需要配置,即使使用高并发线程依旧要花费很多时间;2、你要在刚启动的、没有网络连接的主机上运行Anisble
	Usage: ansible-pull -U  [options] []
        例: */20 * * * * root /usr/local/bin/ansible-pull -o -C 2.1.0 -d /srv/www/king-gw/ -i /etc/ansible/hosts -U git:// git.kingifa.com/king-gw-ansiblepull >> /var/log/ansible-pull.log 2>&1 
    它是通过通过ansible-pull结合Git和crontab一并实现,其原理如下:通过crontab定期拉取指定的Git版本到本地,并以指定模式自动运行预先制订好的指令
    注:ansible-pull通常在配置大批量机器的场景下会使用,灵活性稍有欠缺,但效率几乎可以无限提升,对运维人员的技术水平和前瞻性规划有较高要求



    我对着命令了解的也不是很多,基本很少用过,后续继续更新
  • Ansible-vault
Ansible-vault
    功能:管理加密解密yml文件
	Usage: ansible-vault [create|decrypt|edit|encrypt|encrypt_string|rekey|view] [options] [vaultfile.yml]
    ansible-vault  encrypt hello.yml   加密
	ansible-vault  decrypt hello.yml   解密
	ansible-vault  view hello.yml      查看
	ansible-vault  edit hello.yml      编辑加密文件
	ansible-vault  rekey hello.yml     修改口令
	ansible-vault  create hello.yml    创建新的文件


   例:我们随便写一个playbook

[root@ceshi ansible]# ansible-vault encrypt hello.yml
New Vault password:
Confirm New Vault password:
Encryption successful

[root@ceshi ansible]# cat hello.yml                  ###一般的查看命令是看不到加密后的内容的
$ANSIBLE_VAULT;1.1;AES256
63643463336562663464373064643362346362303764356465323862356131393865303664323237
3535626663653165616137393439623337643130373835650a623135653364653639316632363761
65333737373265303439336330333366306533373039323164373262326263336333336265646631
6235386230626564310a623161313961346135343439313535666564323438653263656635336431
65316534396633623163393835643761303234383932326338653932363534613139633065316538
30376463343932346235386533326230316266386235306333316132363664646432326537393136
30356439363664326432653063356163323566313339306531313232303233393332643836316162
61383733653666386566613861376633353164393533663132646338313136393434633563623334
3233

[root@ceshi ansible]# ansible-playbook hello.yml        ###加密后的playbook我们是无法运行的
ERROR! Attempting to decrypt but no vault secrets found

[root@ceshi ansible]# ansible-vault view hello.yml      ###查看加密后的playbook
Vault password:
---
- hosts: all
  remote_user: root

  tasks:
    - name: hello
      command:  hostname  
  • Ansible-console
ansible-console:2.0+新增,可交互执行命令,支持tab
    root@all (3)[f:5]$
  执行用户@当前操作的主机组(当前组的主机数量)[f:并发数]$
    设置并发数:forks n  例如:forks 10
    切换组:cd 主机组  例如:cd  test
    列出当前组主机列表:list	
    列出所有的内置命令:?或help
	示例:
    root@all (3)[f:5]$ list
    root@all (3)[f:5]$ cd dbserver
    root@dbserver (2)[f:5]$ list
	root@dbserver (2)[f:5]$  yum  name=httpd  state=present
	root@dbserver (2)[f:5]$  service  name=httpd    state=started

 

 

 

 

 

 

你可能感兴趣的:(Ansible)